# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
992668 | 2024-06-05T00:27:47 Z | amin_2008 | A Difficult(y) Choice (BOI21_books) | C++17 | 1 ms | 344 KB |
#include <iostream> #include <fstream> #include <cstdio> #include <queue> #include <vector> #include <algorithm> #include <iomanip> #include <map> #include <cassert> #include <unordered_map> #include <set> #include <stack> #include <cstring> #include <cmath> #include <bitset> #include <random> #include <numeric> #include <cstdlib> #include <array> #include "books.h" using namespace std; // // --- Sample implementation for the task books --- // // To compile this program with the sample grader, place: // books.h books_sample.cpp sample_grader.cpp // in a single folder and run: // g++ books_sample.cpp sample_grader.cpp // in this folder. // void solve(int N, int K, long long A, int S) { int l = 1, r = N; while (l < r) { int mid = (l + r) >> 1; if (skim(mid) >= A) r = mid; else l = mid + 1; } if (r <= N and r >= K) { int sum = skim(r); vector < int > res; res.push_back(r); for(int i = 1; i < K; i++) res.push_back(i), sum += skim(i); if (sum >= A and sum <= A * 2) { answer(res); return; } } if (r < K) { impossible(); return; } vector < pair < int , int > > v; int sum = 0; for(int i = 1; i <= K; i++) v.push_back(make_pair(i, skim(i))), sum += v[i].second; for(int i = K - 1; i >= 0; i--) { if (sum >= A and sum <= A * 2) break; int lo = i + 1, hi = (i + 1 == v.size() ? r - 1 : v[i + 1].first - 1); while (lo < hi) { int mid = (lo + hi) >> 1; if (skim(mid) + sum - v[i].second >= A) hi = mid; else lo = mid + 1; } sum -= v[i].second; v[i] = make_pair(lo, skim(lo)); sum += v[i].second; } if (sum < A or sum > A * 2) { impossible(); return; } vector<int> res; for(pair < int , int > i : v) res.push_back(i.first); answer(res); } // 15 3 42 15 // 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // x_i+1 - x_i <= A / K // 6 3 8 12 // 1 2 3 4 5 6
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |