Submission #972694

#TimeUsernameProblemLanguageResultExecution timeMemory
972694bachhoangxuanKoala Game (APIO17_koala)C++17
47 / 100
53 ms620 KiB
#include "koala.h" #include<bits/stdc++.h> using namespace std; int B[105],R[105]; int minValue(int N, int W) { for(int i=0;i<N;i++) B[i]=0; B[0]=1; 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) { vector<int> ord(N); iota(ord.begin(),ord.end(),0); while((int)ord.size()>1){ for(int i=0;i<N;i++) B[i]=0; for(int x:ord) B[x]=N/(int)ord.size(); vector<int> nxt; playRound(B,R); for(int x:ord) if(R[x]>B[x]) nxt.push_back(x); swap(nxt,ord); } return ord[0]; } int greaterValue(int N, int W) { vector<int> x(8); iota(x.begin(),x.end(),1); x.pop_back();x.back()++; int l=0,r=6; while(l<=r){ int mid=(l+r)>>1,d=x[mid]; for(int i=0;i<N;i++) B[i]=0; B[0]=B[1]=d; playRound(B,R); if(R[0]>d && R[1]<=d) return 0; else if(R[1]>d && R[0]<=d) return 1; if(R[0]<=d) r=mid-1; else l=mid+1; } return 0; } void allValues(int N, int W, int *P) { if (W == 2*N) { vector<int> ord(N); iota(ord.begin(),ord.end(),0); stable_sort(ord.begin(),ord.end(),[&](int x,int y){ for(int i=0;i<N;i++) B[i]=0; B[x]=B[y]=N; playRound(B,R); return R[y]; }); for(int i=0;i<N;i++) P[ord[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...