Submission #103903

#TimeUsernameProblemLanguageResultExecution timeMemory
103903autumn_eelKoala Game (APIO17_koala)C++14
57 / 100
89 ms844 KiB
#include <bits/stdc++.h> #define rep(i,n)for(int i=0;i<(n);i++) using namespace std; #include "koala.h" int B[200],R[200]; int minValue(int N, int W) { memset(B,0,sizeof(B)); B[0]=1; playRound(B,R); rep(i,N){ if(B[i]>=R[i])return i; } return -1; } int maxValue(int N, int W) { rep(i,N){ B[i]=1; } playRound(B,R); vector<int>v; rep(i,N){ if(R[i]>1){ v.push_back(i); } } while(v.size()>1){ memset(B,0,sizeof(B)); int ave=W/v.size(); for(int i:v)B[i]=ave; playRound(B,R); vector<int>u; for(int i:v){ if(R[i]>B[i])u.push_back(i); } v=u; } return v[0]; } map<pair<int,int>,bool>mp; bool cmp(int a,int b,int W=100){ if(mp.count({a,b}))return mp[{a,b}]; if(mp.count({b,a}))return !mp[{b,a}]; int l=2,r=min(W/2,8); while(1){ int t=(l+r)/2; memset(B,0,sizeof(B)); B[a]=B[b]=t; playRound(B,R); bool f0=(B[a]<R[a]),f1=(B[b]<R[b]); if(f0^f1){ if(f0)return mp[{a,b}]=0; return mp[{a,b}]=1; } if(!f0)r=t-1; else l=t+1; } } bool cmp2(int a,int b,int W){ memset(B,0,sizeof(B)); B[a]=B[b]=W/2; playRound(B,R); return B[a]>=R[a]; } int greaterValue(int N, int W) { mp.clear(); if(cmp(0,1,W))return 1; return 0; } void allValues(int N, int W, int *P) { if (W == 2*N) { vector<int>v; rep(i,N)v.push_back(i); sort(v.begin(),v.end(),[&](int a,int b){return cmp2(a,b,W);}); rep(i,v.size()){ P[v[i]]=i+1; } } else { mp.clear(); vector<int>v; rep(i,N)v.push_back(i); sort(v.begin(),v.end(),[&](int a,int b){return cmp(a,b,W);}); rep(i,v.size()){ P[v[i]]=i+1; } } }

Compilation message (stderr)

koala.cpp: In function 'void allValues(int, int, int*)':
koala.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
koala.cpp:79:3: note: in expansion of macro 'rep'
   rep(i,v.size()){
   ^~~
koala.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
koala.cpp:87:3: note: in expansion of macro 'rep'
   rep(i,v.size()){
   ^~~
#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...