Submission #29665

#TimeUsernameProblemLanguageResultExecution timeMemory
29665aybalaDreaming (IOI13_dreaming)C++11
Compilation error
0 ms0 KiB
#include "dreaming.h" #include<bits/stdc++.h> #define fori(a,b,c) for(int a=b; a<c; a++) #define ford(a,b,c) for(int a=b; a>=c; a++) #define pb push_back #define pq priority_queue #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define ll long long using namespace std; vector< pii >v[100004]; ll dis[100004]; ll disr[100004]; vector< int >el[2]; bool vis[100004]; ll ans[2][2]; void dfs(int u, int pre, int gr){ int s=v[u].size(); vis[u]=1; el[gr].pb(u); fori(i,0,s){ if(pre!=v[u][i].fi){ dis[v[u][i].fi]+=dis[u]+v[u][i].se; dfs(v[u][i].fi,u,gr); } } } int n; int travelTime(int N, int M, int L, int A[], int B[], int T[]) { n=N; fori(i,0,M){ v[A[i]].pb(mp(B[i],T[i])); v[B[i]].pb(mp(A[i],T[i])); } int gr=0; fori(i,0,n){ if(v[i].size()==1 && !vis[i]){ dfs(i,i,gr); int s=el[gr].size(); int uu=el[gr][s-1]; fori(j,0,s){ disr[el[gr][j]]=dis[uu]-dis[el[gr][j]]; if(j==0){ ans[gr][0]=el[gr][j]; ans[gr][1]=max(disr[el[gr][j]],dis[el[gr][j]]); } else if(ans[gr][1]>max(disr[el[gr][j]],dis[el[gr][j]])){ ans[gr][1]=max(disr[el[gr][j]],dis[el[gr][j]]); ans[gr][0]=el[gr][j]; } } gr++; } } ll ans=0; fori(i,0,2){ int u = el[i][0]; ans=max(ans,disr[u]); ans=max(ans,dis[ans[i][0]]+L+ans[(i+1)%2][1]); u = el[i][el[i].size()-1]; ans=max(ans,dis[u]); ans=max(ans,disr[ans[i][0]]+L+ans[(i+1)%2][1]); } return ans; }

Compilation message (stderr)

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:64:24: error: invalid types 'long long int[int]' for array subscript
   ans=max(ans,dis[ans[i][0]]+L+ans[(i+1)%2][1]);
                        ^
dreaming.cpp:64:43: error: invalid types 'long long int[int]' for array subscript
   ans=max(ans,dis[ans[i][0]]+L+ans[(i+1)%2][1]);
                                           ^
dreaming.cpp:68:25: error: invalid types 'long long int[int]' for array subscript
   ans=max(ans,disr[ans[i][0]]+L+ans[(i+1)%2][1]);
                         ^
dreaming.cpp:68:44: error: invalid types 'long long int[int]' for array subscript
   ans=max(ans,disr[ans[i][0]]+L+ans[(i+1)%2][1]);
                                            ^