Submission #367506

#TimeUsernameProblemLanguageResultExecution timeMemory
367506cpp219Uzastopni (COCI15_uzastopni)C++14
136 / 160
343 ms65540 KiB
#include <bits/stdc++.h> #define ll int #define ld long double #define fs first #define sc second using namespace std; const ll N = 1e4 + 9; const ll inf = 1e9 + 7; typedef pair<int,int> LL; vector<ll> g[N]; ll n,v[N],x,y; bitset<110> flag[N][110]; vector<LL> s[N]; void DFS(ll u){ for (auto i : g[u]) DFS(i); vector<ll> q[N]; for (auto i : g[u]){ for (auto j : s[i]) q[j.fs].push_back(j.sc); } for (ll l = 109;l > 0;l--){ if (l == v[u]){ flag[u][l] |= flag[u][l + 1]; flag[u][l].set(l); } else{ for (auto i : q[l]){ if (l > v[u] || i < v[u]){ flag[u][l] |= flag[u][i + 1]; flag[u][l].set(i); } } } for (ll i = 100;i >= l;i--) if (flag[u][l][i] == 1 && l <= v[u] && i >= v[u]) s[u].push_back({l,i}); } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define task "tst" if (fopen(task".INP","r")){ freopen(task".INP","r",stdin); //freopen(task".OUT","w",stdout); } cin>>n; for (ll i = 1;i <= n;i++) cin>>v[i]; for (ll i = 1;i < n;i++) cin>>x>>y,g[x].push_back(y); DFS(1); cout<<s[1].size(); }

Compilation message (stderr)

uzastopni.cpp: In function 'void DFS(int)':
uzastopni.cpp:15:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   15 |     for (auto i : g[u]) DFS(i); vector<ll> q[N];
      |     ^~~
uzastopni.cpp:15:33: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   15 |     for (auto i : g[u]) DFS(i); vector<ll> q[N];
      |                                 ^~~~~~
uzastopni.cpp: In function 'int main()':
uzastopni.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   39 |         freopen(task".INP","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...