Submission #795816

#TimeUsernameProblemLanguageResultExecution timeMemory
795816ln_ePrisoner Challenge (IOI22_prison)C++17
56 / 100
11 ms1236 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho
        #include "prison.h"
        using ll=long long;
        using ld=long double;
        int const INF=1000000005;
        ll const LINF=1000000000000000005;
        ll const mod=1000000007;
        ld const PI=3.14159265359;
        ll const MAX_N=3e5+5;
        ld const EPS=0.00000001;
        #pragma GCC optimize("O3")
        #pragma GCC optimize("Ofast")
        #define f first
        #define s second
        #define pb push_back
        #define mp make_pair
        #define endl '\n'
        #define sz(a) (int)a.size()
        #define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        using namespace std;
     mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
    std::vector<std::vector<int>> devise_strategy(int N) {
      vector<vector<int>>ans;
    for(ll i=0;i<=26;i++)
    {
      vector<int>X;
      if(i==0){
        X.pb(0);
        for(ll j=1;j<=N;j++){
          if((1ll<<12)&j){
            X.pb(26);
          }else {
            X.pb(13);
          }
        }
        ans.pb(X);
      }else {
        ll bit=0;
        if(i<=13){
            bit=i-1;
        }else bit=i-14;
        if(bit%2==0){
          X.pb(1);
          for(ll j=1;j<=N;j++)
          {
            if((1ll<<bit)&j){
              if(i<=13){
                X.pb(-1);
              }else if((1ll<<(bit-1))&j){
                X.pb(14+bit-1);
              }else X.pb(bit);
            }else if(i>13){
              X.pb(-2);
            }else if((1ll<<(bit-1))&j){
                X.pb(14+bit-1);
              }else X.pb(bit);
        }
        ans.pb(X);
      }else {
        X.pb(0);
         for(ll j=1;j<=N;j++)
          {
            if((1ll<<bit)&j){
              if(i<=13){
                X.pb(-2);
              }else if((1ll<<(bit-1))&j){
                X.pb(14+bit-1);
              }else X.pb(bit);
            }else if(i>13){
              X.pb(-1);
            }else if((1ll<<(bit-1))&j){
                X.pb(14+bit-1);
              }else X.pb(bit);
        }
        ans.pb(X);
      }
    }
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...