Submission #85122

#TimeUsernameProblemLanguageResultExecution timeMemory
85122nikolapesic2802popa (BOI18_popa)C++14
100 / 100
84 ms720 KiB
#include <bits/stdc++.h> #include "popa.h" using namespace std; #define ll long long #define pb push_back /*bool query(int a,int b,int c,int d) { printf("%i-%i %i-%i?\n",a,b,c,d); int res; scanf("%i",&res); return res; }*/ int nxt; vector<int> parent; int take(int poz,int n,int* Left,int* Right) { nxt++; while(nxt<n&&query(poz,poz,poz,nxt)) { Left[nxt]=Right[poz]; Right[poz]=nxt; parent[nxt]=poz; take(nxt,n,Left,Right); } } int solve(int n,int* Left,int* Right) { for(int i=0;i<n;i++) { Left[i]=-1; Right[i]=-1; } parent.resize(n); fill(parent.begin(),parent.end(),-1); int root=-1; nxt=0; for(int i=0;i<n;i++) { if(parent[i]==-1){ if(root!=-1){ Left[i]=root; parent[root]=i; } root=i; assert(nxt==i); take(i,n,Left,Right); } } return root; int cnt=0,poz; for(int i=0;i<n;i++) { if(parent[i]==-1){ poz=i; cnt++; } } assert(cnt==1); return poz; }

Compilation message (stderr)

popa.cpp: In function 'int take(int, int, int*, int*)':
popa.cpp:26:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...