Submission #75827

#TimeUsernameProblemLanguageResultExecution timeMemory
75827faustaadpKoala Game (APIO17_koala)C++17
92 / 100
67 ms828 KiB
#include "koala.h" #include<bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; ll i; int minValue(int N, int W) { int a[110],b[110]; for(i=0;i<N;i++) a[i]=0; a[0]=1; playRound(a,b); for(i=0;i<N;i++) if(b[i]==0) return i; return 0; } int maxValue(int N, int W) { ll VS,K; int a[110],b[110]; vector<ll> v; for(i=0;i<N;i++) v.pb(i); VS=N; K=1; while(VS>1) { vector<ll> vv; for(i=0;i<N;i++) a[i]=0; K=W/VS; for(i=0;i<VS;i++) a[v[i]]=K; playRound(a,b); for(i=0;i<N;i++) if(b[i]>K) vv.pb(i); v=vv; VS=v.size(); } return v[0]; } ll L,R,C; int greaterValue(int N, int W) { int a[110],b[110]; for(i=0;i<N;i++) a[i]=0; L=1; R=min(14,N/2); while(L<=R) { C=(L+R)/2; a[0]=C; a[1]=C; playRound(a,b); //cout<<i<<" "<<b[0]<<" "<<b[1]<<"\n"; if(b[0]>b[1])return 0; if(b[0]<b[1])return 1; if(b[0]>C)L=C+1; else R=C-1; } return 0; } bool gol (ll aa,ll bb,ll cc,ll dd) { if((cc-bb)>dd) return 1; while(1) { if(cc<=dd)return 0; ll ii,H=0; for(ii=bb;ii>=bb-dd;ii--) H+=max(ii,0LL); if(H<aa)return 1; bb-=(dd+1); cc-=(dd+1); } } void allValues(int N, int W, int *P) { if (W == 2*N) { ll VS,K; int a[110],b[110],sud[110]; for(i=0;i<N;i++) sud[i]=0; ll j; for(j=N-1;j>=0;j--) { vector<ll> v; for(i=0;i<N;i++) if(!sud[i]) v.pb(i); VS=j+1; K=2; while(VS>1) { vector<ll> vv; for(i=0;i<N;i++) a[i]=0; K=W/VS; for(i=0;i<VS;i++) a[v[i]]=K; playRound(a,b); for(i=0;i<N;i++) if(b[i]>K&&a[i]==K) vv.pb(i); v=vv; VS=v.size(); } sud[v[0]]=1; P[v[0]]=j+1; } } else { ll VS,K; int a[110],b[110],sud[110]; for(i=0;i<N;i++) sud[i]=0; ll j,TTT=0; vector<ll> v2; for(j=N-1;j>=0;j--) { int TTT=0; vector<ll> v; if(v2.empty()) { for(i=0;i<N;i++) if(!sud[i]) v.pb(i); } else { for(i=0;i<v2.size();i++) if(!sud[v2[i]]) v.pb(v2[i]); } VS=v.size(); K=1; v2.clear(); while(VS>1) { vector<ll> vv; for(i=0;i<N;i++) a[i]=0; K=1; for(i=(W/VS);i>=0;i--) if(gol(j+1,j+1-VS,(W-(N-(j+1))),i)) { K=i; break; } for(i=0;i<VS;i++) a[v[i]]=K; // cout<<j<<" "<<VS<<" "<<K<<"\n"; TTT++; playRound(a,b); for(i=0;i<N;i++) if(b[i]>K&&a[i]==K) vv.pb(i); v=vv; VS=v.size(); if(VS>1) { v2=v; } } //cout<<j<<" "<<TTT<<"\n"; sud[v[0]]=1; P[v[0]]=j+1; } // cout<<TTT<<"\n"; } }

Compilation message (stderr)

koala.cpp: In function 'void allValues(int, int, int*)':
koala.cpp:136:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(i=0;i<v2.size();i++)
                         ~^~~~~~~~~~
koala.cpp:122:14: warning: unused variable 'TTT' [-Wunused-variable]
         ll j,TTT=0;
              ^~~
#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...