Submission #764776

#TimeUsernameProblemLanguageResultExecution timeMemory
764776vjudge1Commuter Pass (JOI18_commuter_pass)C++17
15 / 100
838 ms39476 KiB
/****************** tree-bends-in-youth //22///06///2023/// ******************/ #include <bits/stdc++.h> #define ll long long #define F first #define S second #define pb push_back #define all(x) x.begin(), x.end() using namespace std; const ll N = 1e5 + 1; const ll INF = 1e17; const ll MOD = 1e9 + 7; vector <int> g[N]; map <pair<int,int>,int> cnt; ll d[N]; int a[N]; void solve(){ int n,m; cin >> n >> m; for(int i = 1;i <= n;i++){ d[i] = INF; } int s,t,u,o; cin >> s >>t >>u >> o; for(int i = 1;i <= m;i++){ int x,y,w; cin >> x >> y >> w; cnt[{x,y}] = w; cnt[{y,x}] = w; g[x].pb(y); g[y].pb(x); } set <pair<int,int> > q; d[s] = 0; q.insert({d[s],s}); while(!q.empty()){ int v = q.begin() -> second; q.erase(q.begin()); for(auto to : g[v]){ if(d[to] > d[v] + cnt[{v,to}]){ q.erase({d[to],to}); d[to] = d[v] + cnt[{v,to}]; a[to] = v; q.insert({d[to],to}); } } } vector <int> l; int x = t; while(x != 0){ l.pb(x); x = a[x]; } for(int i = 0;i < l.size() - 1;i++){ cnt[{l[i],l[i + 1]}] = 0; cnt[{l[i + 1],l[i]}] = 0; } for(int i = 1;i <= n;i++){ d[i] =INF; } d[u] = 0; q.insert({d[u],u}); while(!q.empty()){ int v = q.begin() -> second; q.erase(q.begin()); for(auto to : g[v]){ if(d[to] > d[v] + cnt[{v,to}]){ q.erase({d[to],to}); d[to] = d[v] + cnt[{v,to}]; q.insert({d[to],to}); } } } cout << d[o]; } main () { ios_base::sync_with_stdio(0); cin.tie(0); //freopen("censor.in","r",stdin); //freopen("censor.out","w",stdout); ll T = 1; //cin >> T; for(ll i = 1;i <= T;i++){ // cout << "Case " << i << ":\n"; solve(); } }

Compilation message (stderr)

commuter_pass.cpp: In function 'void solve()':
commuter_pass.cpp:56:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |     for(int i = 0;i < l.size() - 1;i++){
      |                   ~~^~~~~~~~~~~~~~
commuter_pass.cpp: At global scope:
commuter_pass.cpp:78:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   78 | main () {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...