Submission #795805

#TimeUsernameProblemLanguageResultExecution timeMemory
795805ln_ePrisoner Challenge (IOI22_prison)C++17
41 / 100
15 ms1576 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<=36;i++)
    {
      vector<int>X;
      if(i==0){
        X.pb(0);
        for(ll j=1;j<=N;j++){
          if((1ll<<12)&j){
            X.pb(24);
          }else {
            X.pb(12);
          }
        }
        ans.pb(X);
      }else {
        if(i<=24){
         X.pb(1);
         ll bit=0;
         if(i<=12){
          bit=i;
        }else {
          bit=i-12;
          }
         for(ll j=1;j<=N;j++)
         {
          if((1ll<<bit)&j){
            if(i<=12){
              X.pb(-1);
            }else X.pb(25+bit-1);
          }else if(i>12){
            X.pb(-2);
          }else {
            X.pb(25+bit-1);
          }
        }
        ans.pb(X);
      }else {
      X.pb(0);
      ll bit=i-25;
      if(bit==0){
        for(ll j=1;j<=N;j++){
          if((1ll<<bit)&j){
            X.pb(-2);
          }else X.pb(-1);
        }
        ans.pb(X);
        continue;
      }
      for(ll j=1;j<=N;j++)
      {
      if((1ll<<bit)&j){
        X.pb(12+bit);
      }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...