Submission #92207

#TimeUsernameProblemLanguageResultExecution timeMemory
92207updown1Uzastopni (COCI15_uzastopni)C++17
80 / 160
1089 ms33792 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define For(i, a, b) for(int i=a; i<b; i++) #define ffi For(i, 0, MAXV) #define ffj For(j, 0, MAXV) #define ffa ffi ffj #define s <<" "<< #define c <<" : "<< #define w cout #define e endl//"\n" #define pb push_back #define mp make_pair #define a first #define b second #define int short const int MAXN=10000, MAXV = 100; ///500,000,000 int N, joke[MAXN]; bool rng[MAXV][MAXV]; vector<int> adj[MAXN], st[MAXN], en[MAXN]; void go(int at) { for (int i: adj[at]) go(i); ffa rng[i][j] = false; for (int i: adj[at]) { for (int j: st[i]) for (int k: en[i]) if ( k < joke[at] || joke[at] < j ) rng[j][k] = true; st[i].clear(); en[i].clear(); } rng[joke[at]][joke[at]] = true; For (k, 0, MAXV-1) For (i, 0, k+1) For (j, k+1, MAXV) if (rng[i][k] && rng[k+1][j]) rng[i][j] = true; //w<< at+1<<e; For (i, 0, 4) {For (j, 0, 4) w<< rng[i][j] << " "; w<<e;} bool addst[MAXN], adden[MAXN]; ffi addst[i] = adden[i] = false; ffi For (j, i, MAXV) if (rng[i][j] && i <= joke[at] && joke[at] <= j) { if (!addst[i]) {st[at].pb(i); addst[i] = true;} if (!adden[j]) {en[at].pb(j); adden[j] = true;} } //w<< at+1<<e; w<< "st:"; for (int i: st[at]) w s i+1; w<<e; w<< "en:"; for (int i: en[at]) w s i+1; w<<e; } main() { //ifstream cin("test.in"); ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; For (i, 0, N) {cin >> joke[i]; joke[i]--;} For (i, 1, N) {int a, b; cin >> a >> b; a--; b--; adj[a].pb(b);} go(0); w<< st[0].size()*en[0].size()<<e; }

Compilation message (stderr)

uzastopni.cpp:42:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...