Submission #00036
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include<iostream> #include<algorithm> #include<vector> #include<queue> using namespace std; vector<pair< int , int > >G[1<<20]; int n,m; int X; int d[1<<20]; int dijkstra( int u, int g) { priority_queue<pair< int , int > >P; P.push(make_pair(0,u)); d[u]=0; while (!P.empty()) { pair< int , int >p=P.top();P.pop(); int da=-p.first,v=p.second; if (v==g) return da; for ( int i=0;i<G[v].size();i++) { pair< int , int >q=G[v][i]; int cost=q.second; int s=q.first; if (d[s]>da+cost) { d[s]=da+cost; P.push(make_pair(-d[s],s)); } } } return 1e9; } main() { cin>>n>>m>>X; for ( int i=0;i<m;i++) { int u,v,x;cin>>u>>v>>x; u--,v--; G[u].push_back(make_pair(v,x)); G[v].push_back(make_pair(u,x)); } for ( int i=0;i<n;i++)d[i]=1e9; long ans=dijkstra(0,n-1); ans*=2; if (ans<=X)cout<<ans<<endl; else cout<< "sleep" <<endl; } |
ステータス
項目 | データ |
---|---|
問題 | 0003 - 眠れる獅子の肝試し |
ユーザー名 | kotatsugame |
投稿日時 | 2017-05-05 20:23:19 |
言語 | C++11 |
状態 | Accepted |
得点 | 100 |
ソースコード長 | 890 Byte |
最大実行時間 | 561 ms |
最大メモリ使用量 | 56328 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 100 / 100 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
1.in | AC | 18 ms | 25056 KB |
1
|
2.in | AC | 20 ms | 25164 KB |
1
|
3.in | AC | 21 ms | 25136 KB |
1
|
4.in | AC | 27 ms | 25460 KB |
1
|
5.in | AC | 86 ms | 28884 KB |
1
|
6.in | AC | 561 ms | 56328 KB |
1
|