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
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
AC × 59
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