Submission #3229716
Source Code Expand
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <memory.h>
#include <math.h>
#include <assert.h>
#include <queue>
#include <map>
#include <set>
#include <string>
#include <algorithm>
#include <functional>
#include <vector>
#include <stack>
#include <unordered_map>
#include <random>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define Fi first
#define Se second
#define pb(x) push_back(x)
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
int N,M,V;
vector<pii> E[800500];
int timer = 0;
int dist[800500];
int main(){
scanf("%d%d",&N,&M);
timer = N;
map<pii,int> mp;
mp[{1,-1}] = ++timer; E[mp[{1,-1}]].push_back({1,0});
int st = timer;
mp[{N,-1}] = ++timer; E[N].push_back({mp[{N,-1}],0});
int en = timer;
for(int i=1;i<=M;i++){
int x,y,z; scanf("%d%d%d",&x,&y,&z);
// x<->y
int v = ++timer;
E[x].push_back({v,1}); E[y].push_back({v,1});
E[v].push_back({x,0}); E[v].push_back({y,0});
if( mp[{x,z}] == 0 ) mp[{x,z}] = ++timer;
if( mp[{y,z}] == 0 ) mp[{y,z}] = ++timer;
E[mp[{x,z}]].push_back({v,0});
E[mp[{y,z}]].push_back({v,0});
E[v].push_back({ mp[{x,z}], 0});
E[v].push_back({ mp[{y,z}], 0});
}
int V = timer;
for(int i=1;i<=timer;i++) dist[i] = 1e9;
dist[st] = 0;
priority_queue<pii, vector<pii>, greater<pii>> pq;
pq.push({0, st});
while( !pq.empty() ){
int cur = pq.top().Se, curd = pq.top().Fi;
pq.pop();
if( dist[cur] < curd ) continue;
for(auto e : E[cur]){
if( dist[e.Fi] > dist[cur]+e.Se ){
dist[e.Fi] = dist[cur]+e.Se;
pq.push({dist[e.Fi],e.Fi});
}
}
}
printf("%d\n",dist[en]<1e8?dist[en]:-1);
}
Submission Info
Submission Time
2018-09-20 17:02:49+0900
Task
E - Snuke's Subway Trip
User
kjp4155
Language
C++14 (GCC 5.4.1)
Score
600
Code Size
1826 Byte
Status
AC
Exec Time
856 ms
Memory
76020 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:36:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&N,&M);
^
./Main.cpp:46:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
int x,y,z; scanf("%d%d%d",&x,&y,&z);
^
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
8 ms
20096 KB
02.txt
AC
666 ms
54512 KB
03.txt
AC
856 ms
75772 KB
04.txt
AC
692 ms
74368 KB
05.txt
AC
849 ms
64376 KB
06.txt
AC
265 ms
46848 KB
07.txt
AC
343 ms
48128 KB
08.txt
AC
762 ms
75640 KB
09.txt
AC
369 ms
51456 KB
10.txt
AC
373 ms
51328 KB
11.txt
AC
545 ms
55156 KB
12.txt
AC
206 ms
43252 KB
13.txt
AC
428 ms
50292 KB
14.txt
AC
491 ms
54644 KB
15.txt
AC
450 ms
48752 KB
16.txt
AC
521 ms
52468 KB
17.txt
AC
548 ms
55540 KB
18.txt
AC
324 ms
45808 KB
19.txt
AC
468 ms
52080 KB
20.txt
AC
594 ms
57716 KB
21.txt
AC
698 ms
73464 KB
22.txt
AC
554 ms
59252 KB
23.txt
AC
603 ms
63992 KB
24.txt
AC
460 ms
56688 KB
25.txt
AC
183 ms
39928 KB
26.txt
AC
375 ms
46188 KB
27.txt
AC
511 ms
58740 KB
28.txt
AC
467 ms
57072 KB
29.txt
AC
487 ms
57976 KB
30.txt
AC
458 ms
55532 KB
31.txt
AC
351 ms
47216 KB
32.txt
AC
433 ms
51944 KB
33.txt
AC
548 ms
58612 KB
34.txt
AC
469 ms
49396 KB
35.txt
AC
177 ms
42220 KB
36.txt
AC
333 ms
45168 KB
37.txt
AC
513 ms
50292 KB
38.txt
AC
474 ms
49396 KB
sample_01.txt
AC
8 ms
20096 KB
sample_02.txt
AC
8 ms
20096 KB
sample_03.txt
AC
8 ms
20096 KB
w1.txt
AC
518 ms
55504 KB
w10.txt
AC
660 ms
74240 KB
w11.txt
AC
262 ms
42688 KB
w12.txt
AC
416 ms
45076 KB
w13.txt
AC
594 ms
52864 KB
w14.txt
AC
695 ms
70656 KB
w15.txt
AC
166 ms
42424 KB
w16.txt
AC
254 ms
44144 KB
w17.txt
AC
351 ms
44656 KB
w18.txt
AC
535 ms
46720 KB
w2.txt
AC
516 ms
56132 KB
w3.txt
AC
661 ms
59764 KB
w4.txt
AC
521 ms
56036 KB
w5.txt
AC
754 ms
76020 KB
w6.txt
AC
695 ms
66164 KB
w7.txt
AC
751 ms
72516 KB
w8.txt
AC
799 ms
72320 KB
w9.txt
AC
702 ms
73088 KB