Submission #1089964

#TimeUsernameProblemLanguageResultExecution timeMemory
1089964lucripopa (BOI18_popa)C++17
37 / 100
155 ms428 KiB
#include<bits/stdc++.h> int query(int a,int b,int c,int d); int t[1010]; int tata(int nod) { if(t[nod]==-1) return nod; return tata(t[nod]); } void sp(int nod, int* Left, int* Right) { if(nod==-1) return; sp(Left[nod],Left,Right); sp(Right[nod],Left,Right); std::swap(Left[nod],Right[nod]); return; } int solve(int N, int* Left, int* Right) { int n=N; for(int i=0;i<n;++i) { t[i]=-1; Left[i]=Right[i]=-1; } for(int i=0;i+1<n;++i) { if(query(i,i,i,i+1)==true) { t[i+1]=i; Right[i]=i+1; } else { int x=tata(i); while(query(x,i+1,i+1,i+1)==false) x=Right[x]; if(t[x]==-1) { Left[i+1]=x; t[x]=i+1; } else { Right[t[x]]=i+1; t[i+1]=t[x]; t[x]=i+1; Left[i+1]=x; } } } for(int i=0;i<n;++i) if(t[i]==-1) return i; }

Compilation message (stderr)

popa.cpp: In function 'int solve(int, int*, int*)':
popa.cpp:56:1: warning: control reaches end of non-void function [-Wreturn-type]
   56 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...