Submission #220321

#TimeUsernameProblemLanguageResultExecution timeMemory
2203212fat2codeCave (IOI13_cave)C++17
0 / 100
6 ms768 KiB
#include <bits/stdc++.h> #include "cave.h" #define ll long long #define ld long double #define all(a) (a).begin(), (a).end() #define sz() size() #define fr first #define sc second #define pi pair<int,int> #define pii pair<pair<int,int>,int> #define mp make_pair //#define int long long #define rc(s) return cout<<s,0 #define rcc(s) cout<<s,exit(0) using namespace std; const int mod=1e9+7; const int modp=1999999973; const int modulo=998244353; vector<int>still_not_found; vector<pair<int,int>>found; void exploreCave(int N){ ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0); srand(chrono::steady_clock::now().time_since_epoch().count()); int ask[N]; for(int i=0;i<N;i++) ask[i]=0; while(still_not_found.size()){ int l=0; int r=still_not_found.size()-1; while(true){ if(l==r){ int Q3=tryCombination(ask); if(Q3!=-1) ask[l]^=1; found.push_back({l,ask[l]}); still_not_found.erase(still_not_found.begin()+l); break; } int mid=l+(r-l)/2; int Q1=tryCombination(ask); if(Q1==-1) Q1=(N+1); for(int i=0;i<=mid;i++){ ask[i]^=1; } int Q2=tryCombination(ask); if(Q2==-1) Q2=(N+1); if(Q1==Q2){ l=mid+1; } else{ if(Q1>Q2){ r=mid; for(int i=0;i<=mid;i++) ask[i]^=1; } else{ r=mid; } } } } int ans1[N]; for(int i=0;i<N;i++){ ans1[i]=0; } for(int i=0;i<N;i++){ ans1[found[i].fr]=i; } answer(ask,ans1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...