Submission #1040350

#TimeUsernameProblemLanguageResultExecution timeMemory
1040350Saul0906Koala Game (APIO17_koala)C++14
37 / 100
36 ms600 KiB
#include <bits/stdc++.h> #include "koala.h" // #pragma GCC optimize("Ofast") // #pragma GCC target("avx2") // #pragma GCC optimization ("O3") // #pragma GCC optimization ("unroll-loops") // #pragma GCC target("popcnt") using namespace std; using ll = long long; using ull = unsigned long long; using lld = long double; using vi = vector<int>; using vll = vector<ll>; using ii = pair<int,int>; using pll = pair<ll, ll>; using vii = vector<ii>; using vpll = vector<pll>; #define endl '\n' #define all(x) x.begin(),x.end() #define lsb(x) x&(-x) #define gcd(a,b) __gcd(a,b) #define sz(x) (int)x.size() #define mp make_pair #define pb push_back #define fi first #define se second #define fls cout.flush() #define fore(i,l,r) for(auto i=l;i<r;i++) #define fo(i,n) fore(i,0,n) #define forex(i,r,l) for(auto i=r; i>=l;i--) #define ffo(i,n) forex(i,n-1,0) bool cmin(int &a, int b){if(b<a){a=b;return 1;}return 0;} bool cmax(int &a, int b){if(b>a){a=b;return 1;}return 0;} void valid(ll in){cout<<((in)?"YES\n":"NO\n");} ll lcm(ll a, ll b){return (a/gcd(a,b))*b;} ll gauss(ll n){return (n*(n+1))/2;} const int N = 100; int B[N], R[N], WW; int minValue(int N, int W) { fo(i,N)B[i]=0,R[i]=0; fo(i,N){ B[i]=1; playRound(B,R); int mx=0; fo(j,N)mx = max(mx, R[j]); fo(j,N)if(R[j]==0)return j; if(mx==1)return i; assert(0); B[i]=0; } return 0; } int maxValue(int N, int W) { fo(i,N)B[i]=R[i]=0; fo(i,N)B[i]=1; playRound(B,R); fo(i,N)B[i]=0; fo(i,N)if(R[i]>1)B[i]=2; fo(i,N)R[i]=0; playRound(B,R); fo(i,N)B[i]=0; fo(i,N)if(R[i]>2)B[i]=4; fo(i,N)R[i]=0; playRound(B,R); fo(i,N)B[i]=0; fo(i,N)if(R[i]>4)B[i]=11; fo(i,N)R[i]=0; playRound(B,R); fo(i,N)if(R[i]>11)return i; // return ans; } int greaterValue2(int N, int W, int x, int y) { int l=1,r=10; while(l<=r){ int m=(l+r)/2; fo(i,N)B[i]=R[i]=0; B[x]=B[y]=m; playRound(B, R); if(R[x]>m&&R[y]<=m)return 0; if(R[y]>m&&R[x]<=m)return 1; if(R[x]>m&&R[y]>m)l=m+1; else r=m-1; } assert(0); return 0; } int greaterValue(int N, int W){ return greaterValue2(N,W,0,1); } bool ord(int i, int j){ return greaterValue2(N,WW,i,j); } void allValues(int N, int W, int *P) { WW=W; // if (W == 2*N) { int xd[N]; fo(i,N)xd[i]=i; sort(xd,xd+N,ord); fo(i,N)P[xd[i]]=i; // } else { // TODO: Implement Subtask 5 solution here. // You may leave this block unmodified if you are not attempting this // subtask. // } } // void test_case(){ // cin >> N >> W; // int B[N], R[N]; // fo(i,N)B[i]=R[i]=0; // fo(i,N)P[i]=i+1; // fore(i,91,N)B[i]=16; // playRound(B,R); // fo(i,N)cout<<R[i]<<" "; // cout<<endl; // } // int main(){cin.tie(0)->sync_with_stdio(0); // int t=1; // // cin >> t; // while(t--)test_case(); // }

Compilation message (stderr)

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