Submission #1194870

#TimeUsernameProblemLanguageResultExecution timeMemory
1194870irmuunDynamic Diameter (CEOI19_diameter)C++20
24 / 100
5093 ms9420 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() const ll N=1e5+5,Q=1e5+5; ll n,q,W; ll a[N],b[N],c[N]; ll mx=-1,node; vector<ll>g[N]; void dfs(ll x,ll p,ll d){ if(d>mx){ mx=d; node=x; } for(ll i:g[x]){ ll y=(a[i]==x?b[i]:a[i]),w=c[i]; if(y!=p){ dfs(y,x,d+w); } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>q>>W; for(ll i=0;i<n-1;i++){ cin>>a[i]>>b[i]>>c[i]; g[a[i]].pb(i); g[b[i]].pb(i); } ll last=0; while(q--){ ll d,e; cin>>d>>e; d=(d+last)%(n-1); e=(e+last)%W; c[d]=e; mx=-1; dfs(1,1,0); mx=-1, dfs(node,node,0); last=mx; cout<<last<<"\n"; } }
#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...