Submission #718520

#TimeUsernameProblemLanguageResultExecution timeMemory
718520amirhoseinfar1385Dynamic Diameter (CEOI19_diameter)C++17
11 / 100
5071 ms13516 KiB
#include<bits/stdc++.h> using namespace std; long long n,q,w; struct yal{ long long u,v,w,par; yal(){ u=v=w=par=0; } int getad(int fu){ int ret=(fu^u^v); return ret; } }; vector<vector<int>>adj; vector<yal>alled; vector<long long>allv; void solve(int u,int par=0,long long len=0){ allv.push_back(len); for(auto x:adj[u]){ int v=alled[x].getad(u); if(v!=par){ solve(v,u,len+alled[x].w); allv.push_back(len); } } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>q>>w; alled.resize(n+1); adj.resize(n+1); for(int i=0;i<n-1;i++) { cin>>alled[i].u>>alled[i].v>>alled[i].w; adj[alled[i].u].push_back(i); adj[alled[i].v].push_back(i); } long long lasta=0; for(int i=0;i<q;i++){ long long we,e; cin>>e>>we; e=(e+lasta)%(n-1); we=(we+lasta)%(w); alled[e].w=we; allv.clear(); solve(1); //cout<<e<<" "<<we<<" "<<alled[e].u<<" "<<alled[e].v<<"\n"; //for(int j=0;j<(int)allv.size();j++){ // cout<<allv[j]<<" "; //} //cout<<'\n'; long long res=0; for(int i1=0;i1<(int)allv.size();i1++){ for(int i2=i1;i2<(int)allv.size();i2++){ for(int i3=i2;i3<(int)allv.size();i3++){ res=max(res,allv[i1]+allv[i3]-allv[i2]*2); } } } cout<<res<<"\n"; lasta=res; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...