This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "cave.h"
typedef long long ll;
using namespace std;
#define FOR(i, x, y) for(int i=x; i<y; i++)
#define FORNEG(i, x, y) for(ll i=x; i>y; i--)
#define fast() ios_base::sync_with_stdio(false);cin.tie(NULL)
#define ll int
vector<vector<ll>> found;
ll test(int N, int n){
ll ans[N+1];
for (auto&i : found){
ans[i[1]] = i[2];
}
ll result = tryCombination(ans);
if (result>=n || result==-1){
return 0;
}else{
return 1;
}
}
ll test2(int n, int k, int s){
ll ans[n+1];
FOR(i,0,k) ans[i] = s;
for (auto&i : found){
ans[i[1]] = i[2];
}
ll result = tryCombination(ans);
if (result>=n || result==-1){
return 1;
}else{
return 0;
}
}
void exploreCave(int N){
FOR(i,0,N){
ll switchd = test(N,i);
ll lo = 0;
ll hi = N;
while (lo < hi) {
int mid = lo + (hi - lo) / 2;
if (test2(N, mid, switchd)) {
hi = mid;
} else {
lo = mid + 1;
}
};
found.push_back({i, lo, switchd});
}
ll S[N];
ll D[N];
for(auto&i : found){
S[i[0]] = i[2];
D[i[0]] = i[1];
}
answer(S,D);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |