Submission #727970

#TimeUsernameProblemLanguageResultExecution timeMemory
727970KhizriPrisoner Challenge (IOI22_prison)C++17
0 / 100
1180 ms1760920 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; #define IOS ios_base::sync_with_stdio(false); cin.tie(0),cout.tie(0) #define ll long long #define pb push_back #define F first #define S second #define INF 1e18 #define all(v) (v).begin(),(v).end() #define rall(v) (v).rbegin(),(v).rend() #define pii pair<int,int> #define pll pair<ll,ll> #define OK cout<<"Ok"<<endl; #define MOD (ll)(1e9+7) const int mxn=2e5+5; int n,num=0; vector<vector<int>>ans; int aa[mxn],bb[mxn]; map<int,vector<int>>mp; void dfs2(int l,int r,int idx); void dfs1(int l,int r,int idx){ vector<int>vt(n+1); vt[0]=0; if(l==r){ for(int i=1;i<=l;i++){ vt[i]=-1; } for(int i=l+1;i<=n;i++){ vt[i]=-2; } mp[idx]=vt; return; } int m=(l+r)/2; for(int i=1;i<l;i++){ vt[i]=-1; } for(int i=r+1;i<=n;i++){ vt[i]=-2; } vt[1]=-1; vt[n]=-2; ++num; for(int i=l;i<=m;i++){ vt[i]=num; } dfs2(l,m,num); ++num; for(int i=m+1;i<=r;i++){ vt[i]=num; } dfs2(m+1,r,num); mp[idx]=vt; } void dfs2(int l,int r,int idx){ vector<int>vt(n+1); vt[0]=1; if(l==r){ for(int i=1;i<=l;i++){ vt[i]=-2; } for(int i=l+1;i<=n;i++){ vt[i]=-1; } mp[idx]=vt; return; } int m=(l+r)/2; for(int i=1;i<l;i++){ vt[i]=-2; } for(int i=r+1;i<=n;i++){ vt[i]=-1; } ++num; for(int i=l;i<=m;i++){ vt[i]=num; } dfs1(l,m,num); ++num; for(int i=m+1;i<=r;i++){ vt[i]=num; } dfs1(m+1,r,num); mp[idx]=vt; } vector<vector<int>> devise_strategy(int N) { n=N; dfs1(2,n-1,0); for(int i=0;i<=num;i++){ ans.pb(mp[i]); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...