Submission #1039309

#TimeUsernameProblemLanguageResultExecution timeMemory
1039309Maite_MoralePrisoner Challenge (IOI22_prison)C++17
10 / 100
8 ms1116 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

std::vector<std::vector<int>> devise_strategy(int N) {
  ll x=26;
  ll bsbit=13;
  ll r[2]={-1,-2};//Respuesta
  vector<int> bs(bsbit,(1LL<<bsbit)/2);
  for(int i=1;i<=bsbit;i++)bs[i]=bs[i-1]/2;
  vector<vector<int>> v (x,vector<int> (N + 1, 0));
  for(int i=0;i<x;i++){
      ll inf=i;
      ll bit=inf%bsbit;
      inf/=bsbit;
      v[i][0]=bit%2;//Bolsa
     // cerr<<"bit: "<<12-bit<<" bolsa:"<<v[i][0]<<" contenido de la otra:"<<inf<<"\n";
      for(int j=1;j<=N;j++){
          ll actualbit=j/bs[bit];
          actualbit%=2;
          //cerr<<"\t"<<actualbit<<"\n";
          if(actualbit!=inf){
             if(actualbit<inf)v[i][j]=r[v[i][0]];
             else             v[i][j]=r[1-v[i][0]];
          }
          else{
            if(bit==12)continue;
            v[i][j]=((j/bs[bit+1])%2)*bsbit+(bit+1);
          }
      }
  }
 // cout<<"\n(:\n";
return v;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...