Submission #347545

#TimeUsernameProblemLanguageResultExecution timeMemory
347545nicholaskKoala Game (APIO17_koala)C++14
37 / 100
81 ms748 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]={}; b[0]=1; playRound(b,r); if (r[0]<2) return 0; else { for (int i=1; i<N; i++){ if (r[i]<1) 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. vector <int> rem; for (int i=0; i<N; i++) rem.push_back(i); while (rem.size()>1){ int b[N]={},r[N]={}; for (auto&i:rem) b[i]=W/rem.size(); playRound(b,r); vector <int> w; for (int i=0; i<N; i++){ if (b[i]&&r[i]>b[i]) w.push_back(i); } rem=w; } return rem[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 lb=1,rb=10; while (lb<rb){ int m=(lb+rb)>>1; int b[N]={},r[N]={}; b[0]=b[1]=m; playRound(b,r); if (r[0]<=b[0]&&r[1]<=b[1]) rb=m-1; else if (r[0]>b[0]&&r[1]>b[1]) lb=m+1; else if (r[0]>b[0]) return 0; else return 1; } int b[N]={},r[N]={}; b[0]=b[1]=lb; playRound(b,r); if (r[0]>b[0]) return 0; else return 1; } bool cmp(int x,int y){ x--; y--; int b[100]={},r[100]={}; b[x]=b[y]=100; playRound(b,r); return (r[x]>b[x]); } vector <int> msort(vector <int> v){ if (v.size()==1) return v; vector <int> f,s; if (v.size()%2==0){ for (int i=0; i<v.size(); i++){ if (i<v.size()/2) f.push_back(v[i]); else s.push_back(v[i]); } } else { for (int i=0; i<v.size(); i++){ if (i<=v.size()/2) f.push_back(v[i]); else s.push_back(v[i]); } } f=msort(f); s=msort(s); vector <int> ans; int p1=0,p2=0; while (p1<f.size()&&p2<s.size()){ if (cmp(f[p1],s[p2])){ ans.push_back(f[p1]); p1++; } else { ans.push_back(s[p2]); p2++; } } for (int i=p1; i<f.size(); i++) ans.push_back(f[i]); for (int i=p2; i<s.size(); i++) ans.push_back(s[i]); return ans; } 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. vector <int> v(N); for (int i=0; i<N; i++) v[i]=i; vector <int> ans=msort(v); for (int i=0; i<N; i++) P[ans[i]]=i+1; } 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 'std::vector<int> msort(std::vector<int>)':
koala.cpp:74:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |   for (int i=0; i<v.size(); i++){
      |                 ~^~~~~~~~~
koala.cpp:75:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |    if (i<v.size()/2) f.push_back(v[i]);
      |        ~^~~~~~~~~~~
koala.cpp:79:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   79 |   for (int i=0; i<v.size(); i++){
      |                 ~^~~~~~~~~
koala.cpp:80:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |    if (i<=v.size()/2) f.push_back(v[i]);
      |        ~^~~~~~~~~~~~
koala.cpp:88:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |  while (p1<f.size()&&p2<s.size()){
      |         ~~^~~~~~~~~
koala.cpp:88:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |  while (p1<f.size()&&p2<s.size()){
      |                      ~~^~~~~~~~~
koala.cpp:97:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   97 |  for (int i=p1; i<f.size(); i++) ans.push_back(f[i]);
      |                 ~^~~~~~~~~
koala.cpp:98:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   98 |  for (int i=p2; i<s.size(); i++) ans.push_back(s[i]);
      |                 ~^~~~~~~~~
#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...