Submission #1200003

#TimeUsernameProblemLanguageResultExecution timeMemory
1200003irmuunMagic Tree (CEOI19_magictree)C++20
3 / 100
26 ms8260 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() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n,m,k; cin>>n>>m>>k; vector<ll>g[n+5]; ll p[n+5]; bool line=true; for(ll i=2;i<=n;i++){ cin>>p[i]; g[p[i]].pb(i); line&=(p[i]==i-1); } ll u[m],d[m],w[m]; bool leaf=true; vector<ll>c(n+5,0); for(ll i=0;i<m;i++){ cin>>u[i]>>d[i]>>w[i]; c[u[i]]=d[i]; if(g[u[i]].size()>0){ leaf=false; } } if(leaf){ ll ans=0; for(ll i=0;i<m;i++){ ans+=w[i]; } cout<<ans; return 0; } if(line){ vector<ll>v; for(ll i=n;i>=1;i--){ if(c[i]==0) continue; if(c[i]>=v.back()){ v.pb(c[i]); } else{ ll x=upper_bound(all(v),c[i])-v.begin(); v[x]=c[i]; } } cout<<v.size(); return 0; } // if(n<=20){ // for(ll b=0;b<(1ll<<m);b++){ // for(ll i=0;i<m;i++){ // if(b&(1ll<<i)){ // } // } // } // cout<<ans; // } }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...