# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1179677 | amine_aroua | 코알라 (APIO17_koala) | C++20 | 0 ms | 0 KiB |
#include "koala.h"
#include<bits/stdc++.h>
using namespace std;
int minValue(int N, int W) {
// TODO: Implement Subtask 1 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
int B[N] , R[N];
B[0] = 1;
for(int i = 1 ; i < N ;i++)
{
B[i] = 0;
R[i] = 0;
}
playRound(B , R);
for(int i = 0 ;i < N ; i++)
{
if(R[i] <= B[i])
{
return i;
}
}
return 0;
}
int maxValue(int N, int W) {
// TODO: Implement Subtask 2 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
int B[N] , R[N];
// cout<<"HELLO\n";
for(int i = 0 ; i < N ;i++)
{
B[i] = 1;
R[i] = 0;
}
int nb1 = N;
int ret = 0;
vector<bool> bad(N);
while(nb1 > 1)
{
// cout<<"B : ";
// for(int i = 0 ; i < N ; i++)
// {
// cout<<B[i]<<" ";
// }
// cout<<'\n';
playRound(B , R);
// cout<<"R : ";
// for(int i = 0 ; i < N ; i++)
// {
// cout<<R[i]<< " ";
// }
// cout<<'\n';
nb1 = 0;
for(int i = 0 ; i < N ; i++)
{
if(bad[i])
continue;
if(R[i] <= B[i])
{
bad[i] = 1;
B[i] = 0;
}
else
{
B[i]*=2;
nb1++;
ret = i;
}
}
}
return ret;
}
int greaterValue(int N, int W) {
// TODO: Implement Subtask 3 solution here.
// You may leave this function unmodified if you are not attempting this
// subtask.
return 0;
}
bool cmp(const int &a ,const int &b)
{
if(a == b)
return 0;
int N = 100;
int B[N] , R[N];
for(int i = 0 ; i < N ; i++)
{
B[i] = 0 , R[i] = 0;
}
B[a] = N;
B[b] = N;
playRound(B , R);
if(R[b] > B[b])
return 1;
return 0;
}
void allValues(int N, int W, int *P) {
if (W == 2*N) {
// TODO: Implement Subtask 4 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
vector<int> order(N);
for(int i = 0 ; i < N ; i++)
order[i] = i;
sort(order.begin() , order.end() , [const int &a , const int &b]{return cmp(a , b);});
for(int i = 0 ; i < N ; i++)
{
P[order[i]] = i + 1;
}
} else {
// TODO: Implement Subtask 5 solution here.
// You may leave this block unmodified if you are not attempting this
// subtask.
}
}