Submission #71785

#TimeUsernameProblemLanguageResultExecution timeMemory
71785tamtamCave (IOI13_cave)C++14
0 / 100
1042 ms640 KiB
#include "cave.h" #include<bits/stdc++.h> #define F first #define S second typedef long long ll; using namespace std; int n; bool done[5010]; int correctpos[5010]; int whichdoor[5010]; int ask[5010]; vector<int> cur; pair<int,int> Solve(int door){ cur.clear(); int correct; for (int i=0;i<n;i++){ if (!done[i]){cur.push_back(i);ask[i]=0;} else ask[i]=correctpos[i]; } int x=tryCombination(ask); if (x==-1||x>door){ correct=0; }else { correct=1; } int st=0,en=cur.size()-1; int mid; int ans=cur.size()-1; while (st<=en){ mid=(st+en)/2; for (int i=0;i<cur.size();i++){ if (i<=mid){ ask[cur[i]]=correct; }else { ask[cur[i]]=1-correct; } } x=tryCombination(ask); if (x==-1||x>door){ ans=mid; en=mid-1; }else { st=mid+1; } } return {cur[ans],correct}; } void exploreCave(int N) { n=N; for (int i=0;i<n;i++){ pair<int,int> x=Solve(i); whichdoor[x.F]=i; correctpos[x.F]=x.S; } answer(correctpos,whichdoor); }

Compilation message (stderr)

cave.cpp: In function 'std::pair<int, int> Solve(int)':
cave.cpp:31:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i=0;i<cur.size();i++){
                      ~^~~~~~~~~~~
#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...