Submission #19065031
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int64_t calc_lower_bound(int N, const vector<int64_t> &H_vec)
{
int64_t lower = 0;
for (int i = 0; i < N; ++i) {
int64_t lower_i = H_vec.at(i);
if (lower < lower_i)
lower = lower_i;
}
return lower;
}
int64_t calc_upper_bound(int N, const vector<int64_t> &H_vec,
const vector<int64_t> &S_vec)
{
int64_t upper = 0;
for (int i = 0; i < N; ++i) {
int64_t upper_i = H_vec.at(i) + S_vec.at(i) * (N - 1);
if (upper < upper_i)
upper = upper_i;
}
return upper;
}
bool is_feasible(int N, const vector<int64_t> &H_vec,
const vector<int64_t> &S_vec, int64_t score)
{
vector<int64_t> limit_vec(N);
for (int i = 0; i < N; ++i) {
int64_t diff = score - H_vec.at(i);
if (diff < 0)
return false;
int64_t limit = diff / S_vec.at(i);
limit_vec.at(i) = limit;
}
sort(limit_vec.begin(), limit_vec.end());
for (int i = 0; i < N; ++i) {
if (limit_vec.at(i) < i)
return false;
}
return true;
}
int main()
{
int N;
cin >> N;
vector<int64_t> H_vec(N), S_vec(N);
for (int i = 0; i < N; ++i)
cin >> H_vec.at(i) >> S_vec.at(i);
int64_t ok = calc_upper_bound(N, H_vec, S_vec);
int64_t ng = calc_lower_bound(N, H_vec) - 1;
while (abs(ok - ng) > 1) {
int64_t mid = (ok + ng) / 2;
if (is_feasible(N, H_vec, S_vec, mid))
ok = mid;
else
ng = mid;
}
cout << ok<< endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - 射撃王 |
| User | atug |
| Language | C++ (GCC 9.2.1) |
| Score | 100 |
| Code Size | 1574 Byte |
| Status | AC |
| Exec Time | 404 ms |
| Memory | 5636 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | subtask0-sample01.txt, subtask0-sample02.txt |
| Subtask1 | subtask0-sample01.txt, subtask0-sample02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt |
| Subtask2 | subtask0-sample01.txt, subtask0-sample02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask0-sample01.txt | AC | 8 ms | 3552 KiB |
| subtask0-sample02.txt | AC | 2 ms | 3408 KiB |
| subtask1-01.txt | AC | 2 ms | 3468 KiB |
| subtask1-02.txt | AC | 2 ms | 3596 KiB |
| subtask1-03.txt | AC | 2 ms | 3620 KiB |
| subtask1-04.txt | AC | 2 ms | 3412 KiB |
| subtask1-05.txt | AC | 2 ms | 3604 KiB |
| subtask1-06.txt | AC | 2 ms | 3412 KiB |
| subtask1-07.txt | AC | 2 ms | 3560 KiB |
| subtask1-08.txt | AC | 2 ms | 3604 KiB |
| subtask1-09.txt | AC | 2 ms | 3616 KiB |
| subtask1-10.txt | AC | 2 ms | 3472 KiB |
| subtask1-11.txt | AC | 2 ms | 3600 KiB |
| subtask1-12.txt | AC | 3 ms | 3416 KiB |
| subtask1-13.txt | AC | 2 ms | 3524 KiB |
| subtask1-14.txt | AC | 3 ms | 3556 KiB |
| subtask1-15.txt | AC | 2 ms | 3632 KiB |
| subtask2-01.txt | AC | 4 ms | 3416 KiB |
| subtask2-02.txt | AC | 11 ms | 3512 KiB |
| subtask2-03.txt | AC | 15 ms | 3628 KiB |
| subtask2-04.txt | AC | 80 ms | 3724 KiB |
| subtask2-05.txt | AC | 196 ms | 4348 KiB |
| subtask2-06.txt | AC | 215 ms | 5036 KiB |
| subtask2-07.txt | AC | 365 ms | 5304 KiB |
| subtask2-08.txt | AC | 398 ms | 5556 KiB |
| subtask2-09.txt | AC | 399 ms | 5636 KiB |
| subtask2-10.txt | AC | 208 ms | 5388 KiB |
| subtask2-11.txt | AC | 189 ms | 5404 KiB |
| subtask2-12.txt | AC | 399 ms | 5468 KiB |
| subtask2-13.txt | AC | 270 ms | 5448 KiB |
| subtask2-14.txt | AC | 397 ms | 5536 KiB |
| subtask2-15.txt | AC | 404 ms | 5500 KiB |