제출 #1299803

#제출 시각아이디문제언어결과실행 시간메모리
1299803StefanSebezCommuter Pass (JOI18_commuter_pass)C11
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double #define mp make_pair const int N=1e5+50,inf=1e9; const ll INF=1e18; vector<pair<int,int>>E[N]; int n,m,S,T,U,V; void Dijkstra(int U,vector<ll>&dist){ dist.assign(n+1,INF); priority_queue<pair<ll,int>>pq; dist[U]=0; pq.push({-dist[U],U}); while(!pq.empty()){ auto [temp,u]=pq.top();pq.pop(); if(-temp!=dist[u])continue; for(auto [v,w]:E[u]){ if(dist[v]>dist[u]+w){ dist[v]=dist[u]+w; pq.push({-dist[v],v}); } } } } vector<int>E1[N]; int main(){ scanf("%i%i%i%i%i%i",&n,&m,&S,&T,&U,&V); for(int i=1;i<=m;i++){ int u,v,w;scanf("%i%i%i",&u,&v,&w); E[u].pb({v,w}); E[v].pb({u,w}); } vector<ll>dist; Dijkstra(S,dist); for(int u=1;u<=n;u++){ for(auto [v,w]:E[u]){ if(dist[v]==dist[u]+w){ E1[u].pb(v); } } } int deg[n+10]={0}; for(int i=1;i<=n;i++) for(auto j:E1[i]) deg[j]++; queue<int>kju; for(int i=1;i<=n;i++) if(deg[i]==0) kju.push(i); vector<int>topsort; while(!kju.empty()){ int u=kju.front();kju.pop(); topsort.pb(u); for(auto i:E1[u]){ deg[i]--; if(deg[i]==0) kju.push(i); } } vector<ll>distU,distV; Dijkstra(U,distU); Dijkstra(V,distV); vector<int>revtopsort=topsort; reverse(revtopsort.begin(),revtopsort.end()); ll res=distV[U]; ll dp[n+10];bool moze[n+10]={0}; for(auto u:revtopsort){ dp[u]=distV[u]; if(u==T)moze[u]=true; for(auto i:E1[u])if(moze[i]){ dp[u]=min(dp[u],dp[i]); moze[u]=true; } if(moze[u])res=min(res,distU[u]+dp[u]); } for(auto u:revtopsort){ dp[u]=distU[u]; moze[u]=false; if(u==T)moze[u]=true; for(auto i:E1[u])if(moze[i]){ dp[u]=min(dp[u],dp[i]); moze[u]=true; } if(moze[u])res=min(res,distV[u]+dp[u]); } printf("%lld\n",res); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

commuter_pass.c:1:10: fatal error: bits/stdc++.h: No such file or directory
    1 | #include <bits/stdc++.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.