Submission #1151960

#TimeUsernameProblemLanguageResultExecution timeMemory
1151960byunjaewoo코알라 (APIO17_koala)C++20
90 / 100
34 ms460 KiB
#include "koala.h" #include <bits/stdc++.h> using namespace std; int minValue(int N, int W) { int v[100]={0}, t[100]={0}; v[0]=1; playRound(v, t); if(t[0]<=1) return 0; for(int i=1; i<100; i++) if(t[i]==0) return i; } int maxValue(int N, int W) { int v[100]={0}, t[100]={0}; vector<int> c; for(int i=0; i<100; i++) c.push_back(i); for(int i=0; i<4; i++) { if(c.size()==1) break; vector<int> c2; fill(v, v+100, 0); for(int j:c) v[j]=100/c.size(); playRound(v, t); for(int j:c) if(t[j]>(100/c.size())) c2.push_back(j); c=c2; } return c[0]; } int greaterValue(int N, int W) { int v[100]={0}, t[100]={0}; v[0]=v[1]=4; playRound(v, t); if((t[0]>4)!=(t[1]>4)) return ((t[0]>4)<(t[1]>4)); if(t[0]>4) { v[0]=v[1]=8; playRound(v, t); if((t[0]>8)!=(t[1]>8)) return ((t[0]>8)<(t[1]>8)); else if(t[0]>8) { v[0]=v[1]=10; playRound(v, t); return ((t[0]>10)<(t[1]>10)); } } else { v[0]=v[1]=3; playRound(v, t); if((t[0]>3)!=(t[1]>3)) return ((t[0]>3)<(t[1]>3)); else { v[0]=v[1]=1; playRound(v, t); return ((t[0]>1)<(t[1]>1)); } } } void F(int l, int r, vector<int> x, int *P) { if(l==r) { P[x[0]]=l; return; } int v[100]={0}, t[100]={0}; for(int i=1; i<=100/(r-l+1); i++) { int p=0, c=r-l+1, k=0; for(int j=1; j<=r-l+1; j++) { int sum=0; bool flag=true; for(int q=0; q<i+1; q++) { if(p+1<l && sum+(p+1)<=r-j+1) sum+=(++p); else if(c) c--; else flag=false; } if(flag) k=j; } if(!k || k==r-l+1) continue; for(int j:x) v[j]=i; playRound(v, t); vector<int> xl, xr; for(int j:x) { if(t[j]>i) xr.push_back(j); else xl.push_back(j); } F(l, l+xl.size()-1, xl, P), F(l+xl.size(), r, xr, P); return; } } 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 { vector<int> x; int p=minValue(N, W); P[p]=1; for(int i=0; i<100; i++) if(i!=p) x.push_back(i); F(2, 100, x, P); } }

Compilation message (stderr)

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:11:1: warning: control reaches end of non-void function [-Wreturn-type]
   11 | }
      | ^
koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:54:1: warning: control reaches end of non-void function [-Wreturn-type]
   54 | }
      | ^
#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...