Submission #36429536


Source Code Expand

#include<iostream>
#include<vector>
#include<utility>
#include<queue>
#include<functional>
using namespace std;
bool flag[200002];
int f[200002][2];
vector<pair<int,bool>> edg[200002];
priority_queue<pair<int,pair<int,bool>>,vector<pair<int,pair<int,bool>>>,greater<pair<int,pair<int,bool>>>> heap;
inline void Update(const int pos,const bool ty,const int va)
{
	if(f[pos][ty]>va)
	{
		f[pos][ty]=va;
		heap.emplace(va,make_pair(pos,ty));
	}
	return;
}
int main()
{
	int n,m,K;
	cin>>n>>m>>K;
	for(int i=1;i<=m;++i)
	{
		int u,v,a;
		cin>>u>>v>>a;
		edg[u].emplace_back(v,a);
		edg[v].emplace_back(u,a);
	}
	for(int i=1;i<=K;++i)
	{
		int s;
		cin>>s;
		flag[s]=1;
	}
	for(int i=1;i<=n;++i)f[i][0]=f[i][1]=0x3f3f3f3f;
	f[1][1]=0;
	heap.emplace(0,make_pair(1,1));
	while(!heap.empty())
	{
		while(!heap.empty()&&f[heap.top().second.first][heap.top().second.second]!=heap.top().first)heap.pop();
		if(heap.empty()) break;
		const pair<int,bool> pos=heap.top().second;
		heap.pop();
		if(flag[pos.first])
		{
			Update(pos.first,!pos.second,f[pos.first][pos.second]);
		}
		for(auto &i:edg[pos.first])
		{
			if(i.second==pos.second)
			Update(i.first,pos.second,f[pos.first][pos.second]+1);
		}
	}
	int ans=min(f[n][0],f[n][1]);
	cout<<(ans==0x3f3f3f3f?-1:ans);
	return 0;
}

Submission Info

Submission Time
Task E - Crystal Switches
User LXl491214
Language C++ (Clang 10.0.0)
Score 500
Code Size 1330 Byte
Status AC
Exec Time 439 ms
Memory 21364 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 63
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 179 ms 10768 KiB
001.txt AC 173 ms 10744 KiB
002.txt AC 175 ms 10808 KiB
003.txt AC 271 ms 10884 KiB
004.txt AC 178 ms 10828 KiB
005.txt AC 285 ms 13860 KiB
006.txt AC 388 ms 15812 KiB
007.txt AC 387 ms 15676 KiB
008.txt AC 382 ms 15788 KiB
009.txt AC 288 ms 13968 KiB
010.txt AC 286 ms 13940 KiB
011.txt AC 298 ms 15540 KiB
012.txt AC 280 ms 21364 KiB
013.txt AC 255 ms 19552 KiB
014.txt AC 222 ms 13064 KiB
015.txt AC 387 ms 16804 KiB
016.txt AC 439 ms 16844 KiB
017.txt AC 437 ms 16884 KiB
018.txt AC 437 ms 16784 KiB
019.txt AC 438 ms 16884 KiB
020.txt AC 325 ms 14664 KiB
021.txt AC 259 ms 13912 KiB
022.txt AC 203 ms 13972 KiB
023.txt AC 68 ms 9220 KiB
024.txt AC 102 ms 10160 KiB
025.txt AC 288 ms 14128 KiB
026.txt AC 289 ms 13816 KiB
027.txt AC 280 ms 13744 KiB
028.txt AC 252 ms 13612 KiB
029.txt AC 257 ms 13300 KiB
030.txt AC 271 ms 13716 KiB
031.txt AC 247 ms 13376 KiB
032.txt AC 265 ms 13280 KiB
033.txt AC 260 ms 13596 KiB
034.txt AC 251 ms 12828 KiB
035.txt AC 229 ms 12492 KiB
036.txt AC 249 ms 12756 KiB
037.txt AC 253 ms 13152 KiB
038.txt AC 245 ms 13556 KiB
039.txt AC 244 ms 13616 KiB
040.txt AC 209 ms 12496 KiB
041.txt AC 237 ms 12332 KiB
042.txt AC 235 ms 12636 KiB
043.txt AC 225 ms 13456 KiB
044.txt AC 227 ms 13644 KiB
045.txt AC 225 ms 13828 KiB
046.txt AC 215 ms 12740 KiB
047.txt AC 231 ms 11956 KiB
048.txt AC 214 ms 12688 KiB
049.txt AC 217 ms 12056 KiB
050.txt AC 227 ms 11972 KiB
051.txt AC 261 ms 13376 KiB
052.txt AC 256 ms 13132 KiB
053.txt AC 251 ms 13244 KiB
054.txt AC 262 ms 13220 KiB
055.txt AC 232 ms 13660 KiB
056.txt AC 240 ms 13132 KiB
057.txt AC 254 ms 13376 KiB
058.txt AC 260 ms 13108 KiB
059.txt AC 246 ms 12612 KiB
060.txt AC 231 ms 13536 KiB
example0.txt AC 7 ms 7776 KiB
example1.txt AC 8 ms 7684 KiB