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 |
|
|
| 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 |