Submission #1089952

#TimeUsernameProblemLanguageResultExecution timeMemory
1089952lucripopa (BOI18_popa)C++17
0 / 100
10 ms712 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]==0)
        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]=0;
        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);
            t[x]=i+1;
            Left[i+1]=x;
            sp(x,Left,Right);
        }
    }
    for(int i=0;i<n;++i)
        if(t[i]==0)
            return i;
}

Compilation message (stderr)

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