Submission #1187618

#TimeUsernameProblemLanguageResultExecution timeMemory
1187618m5588ohammedPrisoner Challenge (IOI22_prison)C++20
30 / 100
13 ms1860 KiB
#include "prison.h"

#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> devise_strategy(int n){
  vector<vector<int>> ans;
  ans.resize(45);
  ans[0].resize(n+1);
  for(int i=1;i<=n;i++) ans[0][i]=41;
  for(int i=1;i<=44;i++){
    int num=i-1;
    ans[i].resize(n+1);
    int Bdigit=num/10,Sdigit=num%10;
    if(Bdigit==4){
      //cout<<i<<endl;
      ans[i][0]=0;
      int a=10000,b=Sdigit;
      while(b--) a/=10;
      for(int val=1;val<=n;val++){
        int digit=(val%a)/(a/10);
        ans[i][val]=min(44,Sdigit*10+digit+1);
      }
    }
    else{
      ans[i][0]=1;
      int a=10000,b=Bdigit;
      while(b--) a/=10;
      for(int val=1;val<=n;val++){
        int digit=(val%a)/(a/10);
        if(digit>Sdigit) ans[i][val]=-1;
        if(digit<Sdigit) ans[i][val]=-2;
        if(digit==Sdigit) ans[i][val]=min(44,40+Bdigit+2);
      }  
    }
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...