제출 #1301377

#제출 시각아이디문제언어결과실행 시간메모리
1301377efegA Difficult(y) Choice (BOI21_books)C++20
0 / 100
4 ms1200 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; using i64 = long long; template<typename T> using vec = vector<T>; void solve(int N, int K, long long A, int S) { vec<i64> x(N+1,0); vec<int> ans(K,0); i64 currSum = 0; for (int i = 1; i <= N; i++) x[i] = skim(i); for (int i = 0; i < K; i++){ ans[i] = i+1; currSum += x[i+1]; } if (currSum >= A && currSum <= 2 * A) answer(ans); while (currSum < A){ i64 mn = 1e18; int mnidx = -1; for (int i = 0; i < K; i++){ int idx = ans[i]; if (i == K-1 || (idx + 1 != ans[i+1])){ if (idx < N){ if (x[idx+1] - x[idx] < mn){ mn = x[idx+1] - x[idx]; mnidx = i; } } } } if (mnidx == -1) break; currSum -= x[ans[mnidx]]; ans[mnidx] = ans[mnidx] + 1; currSum += x[ans[mnidx]]; if (currSum >= A && currSum <= 2 * A){answer(ans);} } 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...