제출 #1090075

#제출 시각아이디문제언어결과실행 시간메모리
1090075alexander707070코알라 (APIO17_koala)C++14
44 / 100
49 ms596 KiB
#include<bits/stdc++.h> #define MAXN 107 #include "koala.h" using namespace std; int b[MAXN],r[MAXN]; int minValue(int N, int W) { b[0]=1; playRound(b,r); for(int i=0;i<N;i++){ if(r[i]==0)return i; } return 0; } vector<int> can,best; void reset(){ best.clear(); can.clear(); for(int i=0;i<100;i++)b[i]=0; } int maxValue(int N, int W) { reset(); for(int i=0;i<100;i++)can.push_back(i); while(can.size()>1){ for(int i=0;i<100;i++)b[i]=0; for(int i:can){ b[i]=max(W/int(can.size()),9); } playRound(b,r); for(int i:can){ if(r[i]>b[i])best.push_back(i); } can=best; } return can[0]; } int from[MAXN],to[MAXN]; bool compare(int x,int y){ for(int i=0;i<100;i++)b[i]=0; int ll=0,rr=10,tt; while(ll+1<rr){ tt=(ll+rr)/2; b[x]=b[y]=tt; playRound(b,r); if(r[x]<=tt and r[y]<=tt){ rr=tt; }else if(r[x]>tt and r[y]>tt){ ll=tt; }else{ if(r[x]>=tt)return false; else return true; } } return false; } int greaterValue(int N, int W) { if(compare(0,1))return 1; else return 0; } int order[MAXN]; void allValues(int N, int W, int *P) { for(int i=0;i<100;i++){ order[i]=i; from[i]=1; to[i]=100; } sort(order,order+100,compare); for(int i=0;i<N;i++){ P[order[i]]=i+1; } }
#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...