Submission #974663

# Submission time Handle Problem Language Result Execution time Memory
974663 2024-05-03T15:28:33 Z ivaziva Cave (IOI13_cave) C++14
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
#include "cave.h"

using namespace std;

#define MAXN 5010

int pozicija[MAXN];
int vrata[MAXN];
bool pronadjeno[MAXN];
set<long long> nepronadjeni;

void exploreCave(int N)
{
    for (long long i=0;i<N;i++) pozicija[i]=0;
    for (long long i=0;i<N;i++) pronadjeno[i]=false;
    for (long long i=0;i<N;i++) vrata[i]=-1;
    for (long long i=0;i<N;i++) nepronadjeni.insert(i);
    for (long long i=0;i<N;i++)
    {
        long long ans0=tryCombination(pozicija);
        if (ans0>i or ans0==-1)
        {
            long long l=0,r=nepronadjeni.size()-1;
            long long rez=-1;
            while (l<=r)
            {
                long long mid=(l+r)/2;
                long long brojac=0;
                for (long long p:nepronadjeni)
                {
                    if (brojac>mid) break;
                    pozicija[p]=1-pozicija[p];brojac++;
                }
                long long ans=tryComination(pozicija);
                if (ans>i or ans==-1) {rez=mid;r=mid-1;}
                else l=mid+1;
                brojac=0;
                for (long long p:nepronadjeni)
                {
                    if (brojac>mid) break;
                    pozicija[p]=1-pozicija[p];brojac++;
                }
            }
            long long brojac=0;
            long long val=-1;
            for (long long p:nepronadjeni)
            {
                if (brojac==rez) {val=p;break;}
                else brojac++;
            }
            pozicija[val]=1;vrata[val]=i;
            pronadjeno[val]=true;
        }
        else
        {
            long long l=0,r=nepronadjeni.size()-1;
            long long rez=-1;
            while (l<=r)
            {
                long long mid=(l+r)/2;
                long long brojac=0;
                for (long long p:nepronadjeni)
                {
                    if (brojac>mid) break;
                    pozicija[p]=1-pozicija[p];brojac++;
                }
                long long ans=tryComination(pozicija);
                if (ans==i) {rez=mid;r=mid-1;}
                else l=mid+1;
                brojac=0;
                for (long long p:nepronadjeni)
                {
                    if (brojac>mid) break;
                    pozicija[p]=1-pozicija[p];brojac++;
                }
            }
            long long brojac=0;
            long long val=-1;
            for (long long p:nepronadjeni)
            {
                if (brojac==rez) {val=p;break;}
                else brojac++;
            }
            vrata[val]=i;
            pronadjeno[val]=true;
        }
    }
    answer(pozicija,vrata);
}

Compilation message

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:35:31: error: 'tryComination' was not declared in this scope; did you mean 'tryCombination'?
   35 |                 long long ans=tryComination(pozicija);
      |                               ^~~~~~~~~~~~~
      |                               tryCombination
cave.cpp:68:31: error: 'tryComination' was not declared in this scope; did you mean 'tryCombination'?
   68 |                 long long ans=tryComination(pozicija);
      |                               ^~~~~~~~~~~~~
      |                               tryCombination