Submission #1224481

#TimeUsernameProblemLanguageResultExecution timeMemory
1224481JerA Difficult(y) Choice (BOI21_books)C++20
0 / 100
2 ms4260 KiB
#include <bits/stdc++.h> #include "books.h" typedef long long ll; using namespace std; const int MAXN = 10e5 + 5; int n, k, a; int books[MAXN]; #define get_max(b) b * k + (((k - 1) * k / 2) * a) #define get_min(b) b * k + ((k - 1) * k / 2) ll get(int i){ if (books[i] == -1) books[i] = skim(i); return books[i]; } void solve(int N, int K, long long A, int S) { memset(books, -1, sizeof books); n = N, k = K, a = A; int l = 1, h = n; ll curr, sum; while (l < h){ int m = (l + h) / 2; if (m + k > n) m = n - k + 1; curr = get(m); if (get_max(curr) < a) l = m + 1; else if (get_min(curr) > 2 * a) h = m - 1; else{ sum = 0; for (int i = m; i < m + k; i++) sum += get(i); if (sum >= a and sum <= 2 * a) { vector<int> res; for (int i = m; i < m + k; i++) res.push_back(i); answer(res); return; } } } 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...