Submission #47337530
Source Code Expand
use proconio::input;
fn main() {
input! {
n: usize,
k: usize,
a: [usize; n],
};
let sum_a = a.iter().copied().sum::<usize>();
if sum_a <= k {
let mut ans = 0_usize;
for a_i in a {
ans += (1 + a_i) * a_i / 2;
}
println!("{}", ans);
return;
}
let max_a = *a.iter().max().unwrap();
let mut ok = max_a;
let mut ng = 0;
while ok - ng > 1 {
let mid = ng + (ok - ng) / 2;
let mut cnt = 0_usize;
for a_i in a.iter().copied() {
cnt += a_i.saturating_sub(mid);
}
if cnt <= k {
ok = mid;
} else {
ng = mid;
}
}
let mut cnt = 0_usize;
let mut sum = 0_usize;
for a_i in a.iter().copied() {
let ok = ok + 1;
if a_i < ok {
continue;
}
cnt += a_i + 1 - ok;
sum += (ok + a_i) * (a_i + 1 - ok) / 2;
}
sum += ok * (sum_a.min(k) - cnt);
println!("{}", sum);
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Amusement Park |
| User | bouzuya |
| Language | Rust (rustc 1.70.0) |
| Score | 500 |
| Code Size | 1029 Byte |
| Status | AC |
| Exec Time | 7 ms |
| Memory | 3584 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0.txt, example1.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, example0.txt, example1.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 000.txt | AC | 1 ms | 1952 KiB |
| 001.txt | AC | 1 ms | 2088 KiB |
| 002.txt | AC | 1 ms | 1920 KiB |
| 003.txt | AC | 1 ms | 2000 KiB |
| 004.txt | AC | 1 ms | 2092 KiB |
| 005.txt | AC | 1 ms | 1964 KiB |
| 006.txt | AC | 1 ms | 1824 KiB |
| 007.txt | AC | 1 ms | 1964 KiB |
| 008.txt | AC | 6 ms | 3520 KiB |
| 009.txt | AC | 6 ms | 3500 KiB |
| 010.txt | AC | 6 ms | 3476 KiB |
| 011.txt | AC | 6 ms | 3372 KiB |
| 012.txt | AC | 6 ms | 3428 KiB |
| 013.txt | AC | 6 ms | 3436 KiB |
| 014.txt | AC | 6 ms | 3424 KiB |
| 015.txt | AC | 6 ms | 3464 KiB |
| 016.txt | AC | 1 ms | 1948 KiB |
| 017.txt | AC | 1 ms | 1936 KiB |
| 018.txt | AC | 1 ms | 1824 KiB |
| 019.txt | AC | 1 ms | 1940 KiB |
| 020.txt | AC | 1 ms | 1924 KiB |
| 021.txt | AC | 1 ms | 1948 KiB |
| 022.txt | AC | 6 ms | 3540 KiB |
| 023.txt | AC | 5 ms | 3332 KiB |
| 024.txt | AC | 5 ms | 3452 KiB |
| 025.txt | AC | 5 ms | 3464 KiB |
| 026.txt | AC | 5 ms | 3336 KiB |
| 027.txt | AC | 5 ms | 3488 KiB |
| 028.txt | AC | 7 ms | 3472 KiB |
| 029.txt | AC | 6 ms | 3476 KiB |
| 030.txt | AC | 6 ms | 3584 KiB |
| 031.txt | AC | 6 ms | 3560 KiB |
| 032.txt | AC | 6 ms | 3364 KiB |
| 033.txt | AC | 1 ms | 1920 KiB |
| 034.txt | AC | 1 ms | 1912 KiB |
| 035.txt | AC | 0 ms | 1912 KiB |
| 036.txt | AC | 0 ms | 2076 KiB |
| 037.txt | AC | 1 ms | 1944 KiB |
| 038.txt | AC | 1 ms | 1880 KiB |
| 039.txt | AC | 1 ms | 2084 KiB |
| 040.txt | AC | 3 ms | 2872 KiB |
| 041.txt | AC | 3 ms | 3084 KiB |
| 042.txt | AC | 3 ms | 3028 KiB |
| 043.txt | AC | 4 ms | 2644 KiB |
| 044.txt | AC | 4 ms | 2680 KiB |
| 045.txt | AC | 4 ms | 2704 KiB |
| 046.txt | AC | 4 ms | 2728 KiB |
| 047.txt | AC | 4 ms | 2720 KiB |
| 048.txt | AC | 4 ms | 2700 KiB |
| 049.txt | AC | 4 ms | 2720 KiB |
| example0.txt | AC | 0 ms | 1912 KiB |
| example1.txt | AC | 0 ms | 1900 KiB |