Submission #512116

#TimeUsernameProblemLanguageResultExecution timeMemory
512116InternetPerson10Koala Game (APIO17_koala)C++17
55 / 100
65 ms344 KiB
#include "koala.h" #include <bits/stdc++.h> using namespace std; int B[100], R[100]; 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. B[0] = 1; playRound(B, R); if(R[0] == 2) { for(int i = 1; i < N; 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. for(int i = 0; i < 100; i++) { B[i] = 1; } playRound(B, R); for(int i = 0; i < 100; i++) { B[i] = R[i]; } playRound(B, R); for(int i = 0; i < 100; i++) { if(R[i] == 3) B[i] = 4; else B[i] = 0; } playRound(B, R); for(int i = 0; i < 100; i++) { if(R[i] == 5) B[i] = 11; else B[i] = 0; } playRound(B, R); for(int i = 0; i < 100; i++) { if(R[i] == 12) return i; } return 0; } int greaterValue(int N, int W, int X, int Y) { // TODO: Implement Subtask 3 solution here. // You may leave this function unmodified if you are not attempting this // subtask. int l = 0, r = 9; while(l != r - 1) { int mid = (l+r+1)/2; B[X] = B[Y] = mid; playRound(B, R); for(int i = 0; i < 100; i++) B[i] = 0; bool x = (R[X] > mid), y = (R[Y] > mid); if(x && y) l = mid; else if(!x && !y) r = mid; else if(x) return 1; else if(y) return 0; } return 0; } int greaterValue(int N, int W) { return 1 - greaterValue(N, W, 0, 1); } struct { bool operator()(int x, int y) const { return greaterValue(100, 100, x, y); } } customLess; 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. vector<int> nums(100); for(int i = 0; i < 100; i++) { nums[i] = i; } sort(nums.rbegin(), nums.rend(), customLess); for(int i = 0; i < 100; i++) { P[nums[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...