# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
257687 | 2020-08-04T14:40:40 Z | igm_igm | Mag (COCI16_mag) | C++14 | 612 ms | 250832 KB |
#include <bits/stdc++.h> using namespace std; typedef int64_t llo; #define mp make_pair #define pb push_back #define a first #define b second #define all(x) x.begin(),x.end() void setIO(string s){ freopen((s+".in").c_str(),"r",stdin); freopen((s+".out").c_str(),"w",stdout); } pair<llo,llo> ans; vector<llo> adj[1000001]; vector<pair<llo,llo>> kk[1000001]; llo it[1000001]; llo dp[1000001]; llo n; void remin(pair<llo,llo> xx){ llo yo=__gcd(xx.a,xx.b); xx.a/=yo; xx.b/=yo; if(xx.a*ans.b<xx.b*ans.a){ ans=xx; } } void dfs(llo no,llo par=-1,llo co=0){ co+=1; if(it[no]>1){ co=0; } llo ma=0; for(auto j:adj[no]){ if(j==par){ continue; } dfs(j,no,co); ma=max(ma,dp[j]); kk[no].pb({dp[j],j}); } sort(all(kk[no])); reverse(all(kk[no])); llo cc=0; for(llo i=0;i<kk[no].size();i++){ if(i==2){ break; } cc+=kk[no][i].a; } remin({it[no],1+cc}); if(it[no]==1){ dp[no]=ma+1; } } void dfs2(llo no,llo par=-1,llo co=0){ llo kp=co+1; if(kk[no].size()){ kp+=kk[no][0].a; } remin({it[no],kp}); if(it[no]==1){ co+=1; } else{ co=0; } llo ma=0; for(auto j:adj[no]){ if(j==par){ continue; } llo se=0; if(it[no]==1){ se=max(se,co); llo su=1; for(int i=0;i<2;i++){ if(i==kk[no].size()){ break; } if(kk[no][i].b==j){ continue; } su+=kk[no][i].a; break; } se=max(se,su); } dfs2(j,no,se); } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n; for(llo i=0;i<n-1;i++){ llo aa,bb; cin>>aa>>bb; aa--; bb--; adj[aa].pb(bb); adj[bb].pb(aa); } for(llo i=0;i<n;i++){ cin>>it[i]; } ans={it[0],1}; dfs(0); //dfs2(0); cout<<ans.a<<"/"<<ans.b<<endl; return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 47360 KB | Output is correct |
2 | Correct | 30 ms | 47352 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 31 ms | 47352 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 463 ms | 159992 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 30 ms | 47360 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 593 ms | 245852 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 526 ms | 125048 KB | Output is correct |
2 | Correct | 394 ms | 104696 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 494 ms | 122248 KB | Output is correct |
2 | Correct | 123 ms | 55160 KB | Output is correct |
3 | Incorrect | 612 ms | 250832 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 106 ms | 55160 KB | Output is correct |
2 | Correct | 537 ms | 126240 KB | Output is correct |
3 | Correct | 428 ms | 86756 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 475 ms | 119020 KB | Output is correct |
2 | Correct | 515 ms | 124020 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 524 ms | 126620 KB | Output is correct |
2 | Correct | 493 ms | 86720 KB | Output is correct |