Submission #168535

#TimeUsernameProblemLanguageResultExecution timeMemory
168535mosiashvililukaEvacuation plan (IZhO18_plan)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; int a,b,c,d,e,zx,xc,i,j,za,z[1000009],tes,te,di[1000009],msh[1000009],dep[1000009],wv[1000009],pi,rmsh[1000009][18],mn[1000009][18],lf[1000009],rg[1000009],tim; int bo[1000009]; vector <pair <int, int> > v[1000009]; pair <int, int> vv[1000009]; pair <int, pair <int, int> > qw[500009]; pair <int, int> f[1000009]; set <pair <int, int> > s; set <pair <int, int> >::iterator t; int fnd(int q){ if(msh[q]==0) return q; else return fnd(msh[q]); } void mrg(int q, int w, int r){ q=fnd(q); w=fnd(w); if(q==w) return; if(dep[q]>dep[w]) swap(q,w); pi++; rmsh[wv[q]][0]=pi; rmsh[wv[w]][0]=pi; mn[wv[q]][0]=r; mn[wv[w]][0]=r; msh[q]=w; vv[pi].first=wv[q]; vv[pi].second=wv[w]; wv[w]=pi; dep[w]+=dep[q]; } void dfs(int q){ bo[q]=i; tim++; rg[q]=lf[q]=tim; if(vv[q].first==0) return; dfs(vv[q].first); dfs(vv[q].second); if(rg[q]<rg[vv[q].first]) rg[q]=rg[vv[q].first]; if(rg[q]<rg[vv[q].second]) rg[q]=rg[vv[q].second]; } bool anc(int q, int w){ if(lf[q]<=lf[w]&&rg[q]>=rg[w]) return 1; else return 0; } int main(){ ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); cin>>a>>b; for(i=1; i<=b; i++){ cin>>c>>d>>e; qw[i].second.first=c; qw[i].second.second=d; v[c].push_back(make_pair(d,e)); v[d].push_back(make_pair(c,e)); } cin>>za; for(i=1; i<=a; i++) di[i]=1100000000; for(i=1; i<=a; i++) for(j=0; j<=17; j++) mn[i][j]=1100000000; for(i=1; i<=za; i++){ cin>>z[i]; di[z[i]]=0; s.insert(make_pair(0,z[i])); } while(s.size()!=0){ d=(*s.begin()).first; c=(*s.begin()).second; s.erase(s.begin()); if(bo[c]==1) continue; for(vector <pair <int, int> >::iterator it=v[c].begin(); it!=v[c].end(); it++){ if(di[(*it).first]>d+(*it).second){ di[(*it).first]=d+(*it).second; s.insert(make_pair(di[(*it).first],(*it).first)); } } bo[c]=1; } for(i=1; i<=a; i++){ dep[i]=1; wv[i]=i; f[i].first=di[i]; f[i].second=i; } sort(f+1,f+a+1); pi=a; for(i=1; i<=b; i++) qw[i].first=min(di[qw[i].second.first],di[qw[i].second.second]); sort(qw+1,qw+b+1); for(i=b; i>=1; i--){ mrg(qw[i].second.first,qw[i].second.second,qw[i].first); } + /*for(i=1; i<=a; i++){ c=f[i].second; d=f[i].first; for(vector <pair <int, long long> >::iterator it=v[c].begin(); it!=v[c].end(); it++){ mrg((*it).first,c,d); } }*/ for(i=pi; i>=1; i--){ bo[i]=0; for(j=1; j<=17; j++){ rmsh[i][j]=rmsh[rmsh[i][j-1]][j-1]; mn[i][j]=min(mn[i][j-1],mn[rmsh[i][j-1]][j-1]); } } for(i=pi; i>=1; i--){ if(bo[i]!=0) continue; dfs(i); } cin>>tes; for(te=1; te<=tes; te++){ cin>>c>>d; zx=c;xc=d; e=1100000000; for(i=17; i>=0; i--){ if(rmsh[c][i]==0) continue; if(anc(rmsh[c][i],d)==0){ if(e>mn[c][i]) e=mn[c][i]; c=rmsh[c][i]; } } if(e>mn[c][0]) e=mn[c][0]; c=rmsh[c][0]; c=d; for(i=17; i>=0; i--){ if(rmsh[c][i]==0) continue; if(anc(rmsh[c][i],d)==0){ if(e>mn[c][i]) e=mn[c][i]; c=rmsh[c][i]; } } if(e>mn[c][0]) e=mn[c][0]; c=rmsh[c][0]; cout<<e<<endl; } return 0; }

Compilation message (stderr)

plan.cpp: In function 'int main()':
plan.cpp:94:2: error: expected primary-expression before 'for'
  for(i=pi; i>=1; i--){
  ^~~
plan.cpp:94:13: warning: statement has no effect [-Wunused-value]
  for(i=pi; i>=1; i--){
            ~^~~
plan.cpp:94:21: error: expected ';' before ')' token
  for(i=pi; i>=1; i--){
                     ^