Submission #978383

#TimeUsernameProblemLanguageResultExecution timeMemory
978383WongYiKaiKoala Game (APIO17_koala)C++14
37 / 100
71 ms600 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]; for (int i=0;i<N;i++){ b[i] = 0; } b[0] = 1; playRound(b,r); for (int i=0;i<100;i++){ if (r[i]==0) 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]; for (int i=0;i<N;i++){ b[i] = 1; } //b[0] = 1; playRound(b,r); queue<int> next; for (int i=0;i<N;i++){ if (r[i]==2) next.push(i); } for (int i=0;i<N;i++){ b[i] = 0; } while (!next.empty()) { b[next.front()]=2; next.pop(); } playRound(b,r); for (int i=0;i<N;i++){ if (r[i]==3) next.push(i); } for (int i=0;i<N;i++){ b[i] = 0; } while (!next.empty()) { b[next.front()]=4; next.pop(); } playRound(b,r); for (int i=0;i<N;i++){ if (r[i]==5) next.push(i); } for (int i=0;i<N;i++){ b[i] = 0; } while (!next.empty()) { b[next.front()]=11; next.pop(); } playRound(b,r); for (int i=0;i<N;i++){ if (r[i]==12) return i; } return 0; } 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. int b[N],r[N]; for (int i=0;i<N;i++){ b[i] = 1; } //b[0] = 1; playRound(b,r); queue<int> next; int grp[100]; vector<int> grps[5]; for (int i=0;i<N;i++){ if (r[i]==2) next.push(i); if (r[i]==2){ grp[i]=3; } else grp[i]=1; } for (int i=0;i<N;i++){ b[i] = 0; } while (!next.empty()) { b[next.front()]=2; next.pop(); } playRound(b,r); for (int i=0;i<N;i++){ if (r[i]==3) next.push(i); if (r[i]==3) grp[i] = 4; else if (r[i]==1) grp[i] = 2; } for (int i=0;i<N;i++){ grps[grp[i]].push_back(i); } if (grp[0]>grp[1]) return 0; else if (grp[0]<grp[1]) return 1; for (int i=0;i<N;i++){ b[i] = 0; } if (grp[0]==2){ b[0]=6; b[1]=6; } else if (grp[0]==3){ b[0]=8; b[1]=8; } else if (grp[0]==4){ b[0]=10; b[1]=10; } else{ for (int i=0;i<N;i++){ b[i] = 1; } b[0]=0; b[1]=0; b[grps[4][0]]=0; } playRound(b,r); if (r[0]!=0) return 0; else return 1; } 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. } 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...