Please sign in first.
Submission #16642066
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N, K;
cin >> N >> K;
vector<int64_t> a_vec(N);
for (int i = 0; i < N; ++i)
cin >> a_vec.at(i);
int64_t min_cost = -1;
for (int i = 1; i < (1 << N); ++i) {
bitset<15> visible(i);
if (static_cast<int>(visible.count()) != K)
continue;
int64_t prev_hight = 0;
int64_t cost = 0;
for (int j = 0; j < N; ++j) {
int64_t hight = a_vec.at(j);
if (visible.test(j) == 1 && hight <= prev_hight) {
cost += prev_hight + 1 - hight;
hight = prev_hight + 1;
}
prev_hight = max(prev_hight, hight);
}
if (min_cost == -1 || min_cost > cost)
min_cost = cost;
}
cout << min_cost << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - Buildings are Colorful! |
| User | atug |
| Language | C++ (GCC 9.2.1) |
| Score | 350 |
| Code Size | 832 Byte |
| Status | AC |
| Exec Time | 6 ms |
| Memory | 3584 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 120 / 120 | 90 / 90 | 140 / 140 | ||||||||
| Status |
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sub0_in1.txt, sub0_in2.txt |
| Subtask1 | sub1_in1.txt, sub1_in2.txt |
| Subtask2 | sub2_in1.txt, sub2_in2.txt, sub2_in3.txt |
| Subtask3 | sub0_in1.txt, sub0_in2.txt, sub1_in1.txt, sub1_in2.txt, sub2_in1.txt, sub2_in2.txt, sub2_in3.txt, sub3_in1.txt, sub3_in2.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sub0_in1.txt | AC | 6 ms | 3464 KiB |
| sub0_in2.txt | AC | 5 ms | 3384 KiB |
| sub1_in1.txt | AC | 2 ms | 3584 KiB |
| sub1_in2.txt | AC | 3 ms | 3464 KiB |
| sub2_in1.txt | AC | 2 ms | 3560 KiB |
| sub2_in2.txt | AC | 2 ms | 3464 KiB |
| sub2_in3.txt | AC | 2 ms | 3392 KiB |
| sub3_in1.txt | AC | 3 ms | 3452 KiB |
| sub3_in2.txt | AC | 4 ms | 3536 KiB |