제출 #1179407

#제출 시각아이디문제언어결과실행 시간메모리
1179407MarwenElarbi코알라 (APIO17_koala)C++17
29 / 100
18 ms432 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) {
    
    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;
}

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 {
        // TODO: Implement Subtask 5 solution here.
        // You may leave this block unmodified if you are not attempting this
        // subtask.
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...