Submission #707239

#TimeUsernameProblemLanguageResultExecution timeMemory
707239600MihneaKoala Game (APIO17_koala)C++17
19 / 100
12 ms336 KiB
#include "koala.h" #include <cmath> #include <functional> #include <fstream> #include <iostream> #include <vector> #include <algorithm> #include <string> #include <set> #include <map> #include <list> #include <time.h> #include <math.h> #include <random> #include <deque> #include <queue> #include <unordered_map> #include <unordered_set> #include <iomanip> #include <cassert> #include <bitset> #include <sstream> #include <chrono> #include <cstring> #include <numeric> using namespace std; const int NMAX = 1000 + 7; int nglob; int b[NMAX]; int r[NMAX]; int wn[NMAX]; int isbig[NMAX]; void print(int a[]) { cout << " ---> "; for (int i = 0; i < nglob; i++) { cout << a[i] << " "; } cout << "\n"; } void ask() { playRound(b, r); for (int i = 0; i < nglob; i++) { wn[i] = (r[i] > b[i]); } } int minValue(int n, int w) { nglob = n; assert(n < NMAX); assert(w < NMAX); // TODO: Implement Subtask 1 solution here. // You may leave this function unmodified if you are not attempting this // subtask. // cout << "salutare!\n"; assert(n == w); assert(n % 2 == 0); for (int i = 0; i < n; i++) { b[i] = 0; } b[3] = 1; ask(); int cnt_lose = 0; for (int i = 0; i < n; i++) { cnt_lose += (wn[i] == 0); } assert(cnt_lose == 1); for (int i = 0; i < n; i++) { if (wn[i] == 0) { return i; } } assert(0); } int maxValue(int n, int w) { nglob = n; assert(n < NMAX); assert(w < NMAX); assert(n == w); assert(n % 2 == 0); for (int i = 0; i < n; i++) { isbig[i] = 1; } // un fel de cautare binara in functie de "isbig" for (auto& val : { 1, 2, 4, 11 }) { for (int i = 0; i < n; i++) { b[i] = 0; if (isbig[i]) { b[i] = val; } } ask(); for (int i = 0; i < n; i++) { isbig[i] &= wn[i]; } } int cntbig = 0; for (int i = 0; i < n; i++) { cntbig += isbig[i]; } assert(cntbig == 1); for (int i = 0; i < n; i++) { if (isbig[i]) { return i; } } assert(0); } int greaterValue(int n, int w) { nglob = n; assert(n < NMAX); assert(w < NMAX); // TODO: Implement Subtask 3 solution here. // You may leave this function unmodified if you are not attempting this // subtask. return 0; } void allValues(int n, int w, int* p) { nglob = n; assert(n < NMAX); assert(w < NMAX); if (w == 2 * n) { // TODO: Implement Subtask 4 solution here. // You may leave this block unmodified if you are not attempting this // subtask. } else { //cout << "salut!\n"; assert(w == n); // 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...