Submission #1179432

#TimeUsernameProblemLanguageResultExecution timeMemory
1179432MarwenElarbiFurniture (JOI20_furniture)C++20
Compilation error
0 ms0 KiB
#include "koala.h"
#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int minValue(int N, int W) {
    int n=N;
    int tab[N];
    int ans[N];
    memset(tab,0,sizeof tab);
    tab[0]=1;
    playRound(tab,ans);
    int res=-1;
    for (int i = 0; i < n; ++i)
    {
        if(ans[i]==0) res=i;
    }
    if(res!=-1) return res;
    tab[0]=0;
    tab[1]=1;
    playRound(tab,ans);
    for (int i = 0; i < n; ++i)
    {
        if(ans[i]==0) res=i;
    }
    return res;
}

int maxValue(int N, int W) {
    int n=N;
    int tab[n];
    int cur[n];
    int still[n];
    for (int i = 0; i < n; ++i) still[i]=1;
    for (int i = 0; i < n; ++i) tab[i]=1;
    int cnt=1;
    int h[4]={1,2,4,11};
    while(cnt<5){
        playRound(tab,cur);
        for (int i = 0; i < n; ++i)
        {
            if(cur[i]>h[cnt-1]) still[i]=1;
            else still[i]=0;
            if(still[i]==1) tab[i]=h[cnt];
            else tab[i]=0;
        }
        cnt++;
    }
    int res;
    for (int i = 0; i < n; ++i)
    {
        if(still[i]==1) res=i;
    }
    return res;
}

int greaterValue(int N, int W) {
    int tab[100];
    memset(tab,0,sizeof tab);
    int cur[100];
    int l=0;
    int r=min(N/2+1,9);
    while(r-l>1){
        int mid=(r+l)/2;
        tab[0]=mid;
        tab[1]=mid;
        playRound(tab,cur);
        if(cur[0]<=mid&&cur[1]<=mid) r=mid;
        else l=mid;
        if(cur[0]<=mid&&cur[1]>mid) return 1;
        if(cur[1]<=mid&&cur[0]>mid) return 0;
    }
}

bool compare(int N,int i,int j){
    int tab[N];
    int cur[N];
    memset(tab,0,sizeof tab);
    tab[i]=N;
    tab[j]=N;
    playRound(tab,cur);
    return (cur[i]>N ? 1 : 0);
}
vector<int> mergesort(int N,int l,int r){
    if(l>r) return{};
    if(l==r) {
        return {l};
    }
    int mid=(r+l)/2;
    vector<int> a=mergesort(N,l,mid);
    vector<int> b=mergesort(N,mid+1,r);
    vector<int> cur;
    int j=0;
    for (int i = 0; i < a.size(); ++i)
    {
        while(j<b.size()&&compare(N,a[i],b[j])==1) cur.push_back(b[j++]);
        cur.push_back(a[i]); 
    }
    while(j<b.size()) cur.push_back(b[j++]);
    return cur;
}
bool cmp(int N,int i,int j){
    int tab[N];
    memset(tab,0,sizeof tab);
    int cur[N];
    int l=1;
    int r=min(N/2+1,9);
    while(r-l>1){
        int mid=(r+l)/2;
        tab[i]=mid;
        tab[j]=mid;
        playRound(tab,cur);
        if(cur[i]<=mid&&cur[j]<=mid) r=mid;
        else l=mid;
        if(cur[i]<=mid&&cur[j]>mid) return 0;
        if(cur[j]<=mid&&cur[i]>mid) return 1;
    }
    tab[i]=l;
    tab[j]=l;
    playRound(tab,cur);
    if(cur[i]<=l&&cur[j]>l) return 0;
    if(cur[j]<=l&&cur[i]>l) return 1;
}

vector<int> merge(int N,int l,int r){
    if(l>r) return{};
    if(l==r) {
        return {l};
    }
    int mid=(r+l)/2;
    vector<int> a=merge(N,l,mid);
    vector<int> b=merge(N,mid+1,r);
    vector<int> cur;
    int j=0;
    for (int i = 0; i < a.size(); ++i)
    {
        while(j<b.size()&&cmp(N,a[i],b[j])==1) cur.push_back(b[j++]);
        cur.push_back(a[i]); 
    }
    while(j<b.size()) cur.push_back(b[j++]);
    return cur;
}
void allValues(int N, int W, int *P) {
    if (W == 2*N) {
        vector<int> tab=mergesort(N,0,N-1);
        for (int i = 0; i < N; ++i)
        {
            P[tab[i]]=i+1;
        }
    } else {
        vector<int> tab=merge(N,0,N-1);
        for (int i = 0; i < N; ++i)
        {
            P[tab[i]]=i+1;
        }
    }
}

Compilation message (stderr)

furniture.cpp:1:10: fatal error: koala.h: No such file or directory
    1 | #include "koala.h"
      |          ^~~~~~~~~
compilation terminated.