Submission #1603231
Source Code Expand
#include<bits/stdc++.h> using namespace std; typedef pair<uint32_t,uint32_t> P; int BitSearchReverse(uint32_t x){ if(x==0)return -1; return 31-__builtin_clz(x); } struct RadixHeap{ vector<P>v[33]; uint32_t last,sz; RadixHeap(){ last=sz=0; } void push(uint32_t x,uint32_t y){ assert(last<=x); sz++; v[BitSearchReverse(x^last)+1].push_back({x,y}); } void push(P p){ push(p.first,p.second); } P top(){ return pop(false); } P pop(bool f=true){ assert(sz); if(!v[0].size()){ int i=1; while(!v[i].size())++i; last=min_element(v[i].begin(),v[i].end())->first; for(P p:v[i])v[BitSearchReverse(p.first^last)+1].push_back(p); v[i].clear(); } P r=v[0].back(); if(f){ sz--; v[0].pop_back(); } return r; } int size(){ return sz; } bool empty(){ return sz==0; } void clear(){ last=sz=0; for(auto a:v)a.clear(); } }; struct Graph{ Graph(int n):E(n),d(n){} vector<vector<P>>E; vector<int>d; void add_edge(int a,int b,int c){ E[a].push_back({b,c}); } void dijkstra(int s){ RadixHeap H; fill(d.begin(),d.end(),1e9); H.push({d[s]=0,s}); while(H.size()){ P p=H.top();H.pop(); if(p.first>d[p.second])continue; for(P& a:E[p.second]){ int x=a.first,y=a.second+p.first; if(y<d[x])d[x]=y,H.push({y,x}); } } } }; main(){ int n,m,a,b,c,x=1e9; cin>>n>>m; Graph E(n); for(int i=0;i<m;++i){ cin>>a>>b>>c; E.add_edge(--a,--b,c),E.add_edge(b,a,c); } for(int i=0;i<n;++i){ E.dijkstra(i); x=min(x,*max_element(E.d.begin(),E.d.end())); } cout<<x<<endl; }
Submission Info
Submission Time | |
---|---|
Task | D - バスと避けられない運命 |
User | moeruAI |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1770 Byte |
Status | AC |
Exec Time | 82 ms |
Memory | 1536 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
test_01.txt | AC | 1 ms | 256 KB |
test_02.txt | AC | 8 ms | 256 KB |
test_03.txt | AC | 82 ms | 1536 KB |
test_04.txt | AC | 12 ms | 256 KB |
test_05.txt | AC | 33 ms | 640 KB |
test_06.txt | AC | 6 ms | 384 KB |
test_07.txt | AC | 64 ms | 1408 KB |
test_08.txt | AC | 2 ms | 256 KB |
test_09.txt | AC | 25 ms | 640 KB |
test_10.txt | AC | 6 ms | 384 KB |
test_11.txt | AC | 6 ms | 384 KB |
test_12.txt | AC | 20 ms | 384 KB |
test_13.txt | AC | 6 ms | 384 KB |
test_14.txt | AC | 9 ms | 384 KB |
test_15.txt | AC | 60 ms | 1408 KB |
test_16.txt | AC | 9 ms | 384 KB |
test_17.txt | AC | 27 ms | 640 KB |
test_18.txt | AC | 20 ms | 384 KB |
test_19.txt | AC | 10 ms | 384 KB |
test_20.txt | AC | 9 ms | 384 KB |
test_21.txt | AC | 1 ms | 256 KB |
test_22.txt | AC | 12 ms | 384 KB |
test_23.txt | AC | 1 ms | 256 KB |
test_24.txt | AC | 6 ms | 256 KB |
test_25.txt | AC | 6 ms | 256 KB |
test_26.txt | AC | 3 ms | 256 KB |
test_27.txt | AC | 3 ms | 256 KB |
test_28.txt | AC | 6 ms | 256 KB |
test_29.txt | AC | 6 ms | 256 KB |
test_30.txt | AC | 2 ms | 256 KB |
test_31.txt | AC | 1 ms | 256 KB |
test_32.txt | AC | 6 ms | 256 KB |
test_33.txt | AC | 6 ms | 256 KB |
test_34.txt | AC | 2 ms | 256 KB |
test_35.txt | AC | 3 ms | 256 KB |
test_36.txt | AC | 5 ms | 256 KB |