Submission #3598363
Source Code Expand
#include <cstdio> #include <cstring> #include <queue> #include <set> #include <algorithm> using namespace std; const int inf=1<<29; const int maxn=1e5+10; const int maxm=2e5+10; int n,m,cnt; int head[maxn]; struct Edge { int v,c,nx; }edge[maxm<<1]; struct Node { int v,w; bool operator <(const Node&n1) const { return w==n1.w?v<n1.v:w<n1.w; } }; int dis[maxn]; bool vis[maxn]; set<int> col[maxn]; void _init() { cnt=0; memset(head,-1,sizeof(head)); } inline void add(int u,int v,int c) { edge[cnt].v=v; edge[cnt].c=c; edge[cnt].nx=head[u]; head[u]=cnt++; edge[cnt].v=u; edge[cnt].c=c; edge[cnt].nx=head[v]; head[v]=cnt++; } void bfs() { memset(vis,0,sizeof(vis)); for (int i=1;i<=n;i++) col[i].clear(); for (int i=1;i<=n;i++) dis[i]=inf; dis[1]=0; priority_queue<Node> q; q.push(Node{1,0}); while (!q.empty()) { Node t=q.top(); q.pop(); int u=t.v; if (vis[u]) continue; vis[u]=1; for (int i=head[u];i!=-1;i=edge[i].nx) { int v=edge[i].v; int w=col[u].count(edge[i].c)?0:1; if (dis[v]>dis[u]+w) { dis[v]=dis[u]+w; col[v].clear(); col[v].insert(edge[i].c); q.push(Node{v,-dis[v]}); } else if (dis[v]==dis[u]+w) { col[v].insert(edge[i].c); } } } } int main() { while (~scanf("%d%d",&n,&m)) { _init(); int u,v,c; for (int i=1;i<=m;i++) { scanf("%d%d%d",&u,&v,&c); add(u,v,c); } bfs(); printf("%d\n", dis[n]==inf?-1:dis[n]); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Snuke's Subway Trip |
User | vjudge1 |
Language | C++14 (GCC 5.4.1) |
Score | 600 |
Code Size | 1698 Byte |
Status | AC |
Exec Time | 109 ms |
Memory | 20216 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:73:37: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d",&u,&v,&c); ^
Judge Result
Set Name | Sample | All | ||
---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||
Status | AC |
|
Set Name | Test Cases |
---|---|
Sample | |
All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, sample_01.txt, sample_02.txt, sample_03.txt, w1.txt, w10.txt, w11.txt, w12.txt, w13.txt, w14.txt, w15.txt, w16.txt, w17.txt, w18.txt, w2.txt, w3.txt, w4.txt, w5.txt, w6.txt, w7.txt, w8.txt, w9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01.txt | AC | 4 ms | 8448 KB |
02.txt | AC | 63 ms | 11392 KB |
03.txt | AC | 99 ms | 17656 KB |
04.txt | AC | 49 ms | 10496 KB |
05.txt | AC | 98 ms | 17656 KB |
06.txt | AC | 44 ms | 15232 KB |
07.txt | AC | 64 ms | 15488 KB |
08.txt | AC | 99 ms | 17656 KB |
09.txt | AC | 55 ms | 15488 KB |
10.txt | AC | 55 ms | 15488 KB |
11.txt | AC | 83 ms | 18044 KB |
12.txt | AC | 49 ms | 10496 KB |
13.txt | AC | 67 ms | 14076 KB |
14.txt | AC | 87 ms | 17408 KB |
15.txt | AC | 69 ms | 14716 KB |
16.txt | AC | 82 ms | 16512 KB |
17.txt | AC | 88 ms | 18424 KB |
18.txt | AC | 55 ms | 11520 KB |
19.txt | AC | 79 ms | 17016 KB |
20.txt | AC | 90 ms | 19072 KB |
21.txt | AC | 100 ms | 17528 KB |
22.txt | AC | 91 ms | 17272 KB |
23.txt | AC | 94 ms | 17912 KB |
24.txt | AC | 74 ms | 16252 KB |
25.txt | AC | 46 ms | 10624 KB |
26.txt | AC | 61 ms | 14076 KB |
27.txt | AC | 82 ms | 19328 KB |
28.txt | AC | 77 ms | 17788 KB |
29.txt | AC | 79 ms | 18172 KB |
30.txt | AC | 74 ms | 16248 KB |
31.txt | AC | 65 ms | 14592 KB |
32.txt | AC | 71 ms | 14968 KB |
33.txt | AC | 96 ms | 18556 KB |
34.txt | AC | 76 ms | 14716 KB |
35.txt | AC | 45 ms | 10496 KB |
36.txt | AC | 56 ms | 11520 KB |
37.txt | AC | 91 ms | 15104 KB |
38.txt | AC | 76 ms | 14716 KB |
sample_01.txt | AC | 4 ms | 8448 KB |
sample_02.txt | AC | 4 ms | 8448 KB |
sample_03.txt | AC | 4 ms | 8448 KB |
w1.txt | AC | 89 ms | 16888 KB |
w10.txt | AC | 60 ms | 12672 KB |
w11.txt | AC | 71 ms | 10624 KB |
w12.txt | AC | 79 ms | 11392 KB |
w13.txt | AC | 65 ms | 12032 KB |
w14.txt | AC | 66 ms | 14208 KB |
w15.txt | AC | 51 ms | 10496 KB |
w16.txt | AC | 55 ms | 10496 KB |
w17.txt | AC | 57 ms | 10880 KB |
w18.txt | AC | 61 ms | 12032 KB |
w2.txt | AC | 93 ms | 16760 KB |
w3.txt | AC | 102 ms | 16504 KB |
w4.txt | AC | 81 ms | 15608 KB |
w5.txt | AC | 109 ms | 20216 KB |
w6.txt | AC | 102 ms | 19064 KB |
w7.txt | AC | 93 ms | 13952 KB |
w8.txt | AC | 91 ms | 16000 KB |
w9.txt | AC | 96 ms | 19712 KB |