Submission #1104589

#TimeUsernameProblemLanguageResultExecution timeMemory
1104589sinataghizadehDynamic Diameter (CEOI19_diameter)C++14
11 / 100
5055 ms2896 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; #define all(x) (x).begin(),(x).end() #define pb push_back #define fi first #define se second #define beg begin #define siz size() #define fastio cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); #define endl '\n' #define ins insert #define log LOG const ll inf = 1e9; const ll mod = 10289; const int maxn=5004+6; const int log=24; ll n,q,vis[maxn],dis[maxn],w; vector<ll>adj[maxn]; map<pll,ll>x; vector<pll>ed; void dfs(ll v,ll p){ for(auto u:adj[v]){ if(p==u)continue; dis[u]=dis[v]+x[{u,v}]; dfs(u,v); } } int main(){ fastio cin>>n>>q>>w; for(int i=1;i<n;i++){ ll a,b,c; cin>>a>>b>>c; x[{a,b}]=c; x[{b,a}]=c; ed.pb({a,b}); adj[a].pb(b);adj[b].pb(a); } ll ld=0; while(q--){ ll d,e; cin>>d>>e;d+=ld;e+=ld;d%=(n-1);e%=w; ll u=ed[d].fi,v=ed[d].se; x[{u,v}]=e;x[{v,u}]=e; ll mx=0;dis[1]=0; //fill(dis,dis+n+2,0); dfs(1,-1); for(int i=0;i<=n;i++){ if(dis[i]>dis[mx])mx=i; }dis[mx]=0; // fill(dis,dis+n+2,0); dfs(mx,-1); for(int i=0;i<=n;i++){ if(dis[i]>dis[mx])mx=i; } cout<<dis[mx]<<endl; ld=dis[mx]; } }
#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...