From 2d59e2f771aee9bb2bd46c507c0f33d854c2db3c Mon Sep 17 00:00:00 2001 From: Familia Date: Mon, 4 Aug 2008 14:13:10 -0500 Subject: [PATCH] 610 - Street directions (Grafos, DFS) && 10986 - Sending email (Grafos, Algoritmo de Dijkstra) --- 10986 - Sending email/10986 | Bin 0 -> 24027 bytes 10986 - Sending email/10986.cpp | 66 +++++++++++++++++++++++++++++++++++++ 10986 - Sending email/in.txt | 8 +++++ 610 - Street directions/610 | Bin 0 -> 42127 bytes 610 - Street directions/610.cpp | 69 +++++++++++++++++++++++++++++++++++++++ 610 - Street directions/in.small | 5 +++ 610 - Street directions/in.txt | 22 +++++++++++++ 7 files changed, 170 insertions(+) create mode 100755 10986 - Sending email/10986 create mode 100644 10986 - Sending email/10986.cpp create mode 100644 10986 - Sending email/in.txt create mode 100755 610 - Street directions/610 create mode 100644 610 - Street directions/610.cpp create mode 100644 610 - Street directions/in.small create mode 100644 610 - Street directions/in.txt diff --git a/10986 - Sending email/10986 b/10986 - Sending email/10986 new file mode 100755 index 0000000000000000000000000000000000000000..7581abd74f799cd2008c0c284ab6d9fe5b2410af GIT binary patch literal 24027 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 JUq`lp{||;&oMHd~ literal 0 HcwPel00001 diff --git a/10986 - Sending email/10986.cpp b/10986 - Sending email/10986.cpp new file mode 100644 index 0000000..8982bc6 --- /dev/null +++ b/10986 - Sending email/10986.cpp @@ -0,0 +1,66 @@ +/* +Problem: 10986 - Sending email (UVa Online Judge) +Andrés Mejía-Posada (http://github.com/andmej/acm) + +Verdict: Accepted +Algorithm: Dijkstra + +*/ +#include +#include +#include + +using namespace std; + +struct edge{ + int to, weight; + edge() {} + edge(int t, int w) : to(t), weight(w) {} + bool operator < (const edge &that) const { + return weight > that.weight; + } +}; + +int main(){ + int N, C=0; + scanf("%d", &N); + while (N-- && ++C){ + int n, m, s, t; + scanf("%d %d %d %d", &n, &m, &s, &t); + vector g[n]; + while (m--){ + int u, v, w; + scanf("%d %d %d", &u, &v, &w); + g[u].push_back(edge(v, w)); + g[v].push_back(edge(u, w)); + } + + int d[n]; + for (int i=0; i q; + q.push(edge(s, 0)); + while (q.empty() == false){ + int node = q.top().to; + int dist = q.top().weight; + q.pop(); + + if (dist > d[node]) continue; + if (node == t) break; + + for (int i=0; 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�w2vR>E&GE8%uSO!@nr1;M;{S%N2x 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 + +using namespace std; + +const int MAXN = 1000; + +bool g[MAXN][MAXN], visited[MAXN]; +int n, p[MAXN]; + +void dfs(int u){ + visited[u] = true; + for (int v=0; v