Submission #1301559

#TimeUsernameProblemLanguageResultExecution timeMemory
1301559efegA Difficult(y) Choice (BOI21_books)C++20
0 / 100
2 ms1084 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; #define pb push_back #define all(v) v.begin(),v.end() using i64 = long long; template<typename T> using vec = vector<T>; vec<i64> x(1e5 + 100,-1); i64 get(int idx){ if (x[idx] != -1) return x[idx]; return x[idx] = skim(idx); } void solve(int N, int K, long long A, int S) { i64 sm = 0; for (int i = 1; i <= K-1; i++) sm += get(i); int s = K,e = N,ans = N; while (s <= e){ int m = (s + e) / 2; if (sm + get(m) > A){ ans = m; e = m-1; } else { s = m+1; } } vec<int> vecans(K); iota(all(vecans),1); if (sm + get(K) >= A && sm + get(K) <= 2 * A){ answer(vecans); } for (int i = 0; i < K; i++){ sm -= get(vecans[i]); vecans[i] = ans - K + 1 + i; sm += get(vecans[i]); if (sm >= A && sm <= 2 * A){ answer(vecans); } } impossible(); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...