Submission #701192

#TimeUsernameProblemLanguageResultExecution timeMemory
701192Abrar_Al_SamitKoala Game (APIO17_koala)C++17
33 / 100
53 ms340 KiB
#include "koala.h" #include<bits/stdc++.h> using namespace std; int minValue(int N, int W) { int B[N], R[N]; for(int i=0; i<N; ++i) { B[i] = R[i] = 0; } B[0] = 1; playRound(B, R); if(R[0]<=1) { return 0; } for(int i=1; i<N; ++i) { if(R[i]==0) return i; } } int maxValue(int N, int W) { int B[N] = {0}, R[N] = {0}; set<int>s; for(int i=0; i<N; ++i) { s.insert(i); } while(s.size()>1) { int val = W / s.size(); memset(B, 0, sizeof B); memset(R, 0, sizeof R); for(int x : s) { B[x] = val; } playRound(B, R); set<int>new_s; for(int i=0; i<N; ++i) if(R[i]>B[i]) { if(s.count(i)) new_s.insert(i); } s = new_s; } return *s.begin(); } int greaterValue(int N, int W) { int B[N] = {0}, R[N] = {0}; int l = 1, r = 13; while(l<r) { int mid = (l+r+1)/2; B[0] = B[1] = mid; playRound(B, R); if(B[0]<R[0] && B[1]<R[1]) { l = mid; } else if(B[0]>=R[0] && B[1]>=R[1]) { r = mid-1; } else { if(R[0]>B[0]) return 0; return 1; } } } void allValues(int N, int W, int *P) { int B[N] = {0}, R[N] = {0}; if (W == 2*N) { vector<vector<int>>grps(14); for(int i=0; i<N; ++i) { int l = 0, r = 13; while(l<r) { int mid = (l+r+1)/2; B[i] = mid; playRound(B, R); if(R[i]>B[i]) { l = mid; } else { r = mid-1; } B[i] = 0; } grps[l].push_back(i); } vector<int>order; for(int i=0; i<14; ++i) { vector<int>cur; while(!grps[i].empty()) { for(int j : grps[i]) { B[j] = i; } playRound(B, R); for(int j : grps[i]) { if(R[j]>B[j]) { cur.push_back(j); } B[j] = 0; } int x = cur.back(); int id = -1; for(int j=0; j<grps[i].size(); ++j) { if(grps[i][j]==x) id = j; } swap(grps[i].back(), grps[i][id]); grps[i].pop_back(); if(grps[i].empty()) { reverse(cur.begin(), cur.end()); for(int j : cur) { order.push_back(j); } } } } for(int i=0; i<N; ++i) { P[i] = order[i]; } } else { // TODO: Implement Subtask 5 solution here. // You may leave this block unmodified if you are not attempting this // subtask. } }

Compilation message (stderr)

koala.cpp: In function 'void allValues(int, int, int*)':
koala.cpp:111:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  111 |                 for(int j=0; j<grps[i].size(); ++j) {
      |                              ~^~~~~~~~~~~~~~~
koala.cpp: In function 'int minValue(int, int)':
koala.cpp:20:1: warning: control reaches end of non-void function [-Wreturn-type]
   20 | }
      | ^
koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:70:1: warning: control reaches end of non-void function [-Wreturn-type]
   70 | }
      | ^
#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...