Submission #549548

#TimeUsernameProblemLanguageResultExecution timeMemory
549548Killer2501Library (JOI18_library)C++14
0 / 100
33 ms376 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define ull unsigned long long #define pb push_back #define pll pair<int, pii> #define pii pair<int, int> #define fi first #define se second #include"library.h" using namespace std; const int N = 4e3+5; const int M = 750; const int mod = 1e9+7; const ll base = 75; const ll inf = 1e16+7; int n, t, ans, tong; int k, m, a[N], b[N]; vector<pii> adj[N]; void Solve(int n) { vector<int> vi, res; vi.resize(n, 0); fill_n(a, n+1, 0); for(int i = 0; i < n; i ++) { vi[i] = 1; if(Query(vi) == 1) { a[i] = 1; res.pb(i+1); break; } vi[i] = 0; } for(int j = 2; j <= n; j ++) { int l = 1, r = n-j+1, mid; vi[res[j-2]-1] = 0; while(l <= r) { mid = (l+r)>>1; for(int i = 0, cnt = 0; i < n && cnt < mid; i ++) if(!a[i])vi[i] = 1, ++cnt; k = Query(vi); vi[res[j-2]-1] = 1; if(k <= Query(vi))l = mid+1; else r = mid-1; vi[res[j-2]-1] = 0; for(int i = 0, cnt = 0; i < n && cnt < mid; i ++) if(!a[i])vi[i] = 0, ++cnt; } vi[res[j-2]-1] = 1; int i = 0, cnt = 0; while(cnt < l) { if(!a[i])++cnt; ++i; } --i; a[i] = 1; vi[i] = 1; res.pb(i+1); } Answer(res); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...