Submission #1214171
Source Code Expand
#include <iostream> #include <string> #include <vector> #include <queue> #include <stack> #include <map> #include <set> #include <algorithm> #include <cmath> #include <functional> #include <chrono> #include <time.h> using namespace std; int main() { int n, k; cin >> n >> k; vector<int>a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } long long ans = 0; vector<int>see(n); int minH = a[0]; int cnt = 1; for (int i = 0; i < n; i++){ if (minH < a[i]) { minH = a[i]; cnt++; } see[i] = minH; } while (cnt > k) { int index = 0; vector<pair<int, int>>b; for (int i = 0; i < n- 1; i++) { if (see[i] < see[i + 1]) { b.push_back(make_pair(see[i + 1] - see[i], index)); index = i + 1; } } sort(b.begin(), b.end()); a[b[0].second] += b[0].first; ans += b[0].first; int minH = a[0]; cnt = 1; for (int i = 0; i < n; i++) { if (minH < a[i]) { minH = a[i]; cnt++; } see[i] = minH; } cerr << cnt << endl; } while (cnt < k) { vector<pair<int, int>>b; vector<int>bias(n); for (int i = n - 1; i > 0; i--) { if (i < n - 1)bias[i] = bias[i + 1]; if (see[i] == see[i - 1]) { b.push_back(make_pair(see[i] + 1 + bias[i] + - a[i], n - i)); } else if(see[i]-see[i-1]==1){ bias[i]++; } else bias[i] = 0; } sort(b.begin(), b.end()); a[n-b[0].second] += b[0].first - bias[n - b[0].second]; ans += b[0].first - bias[n - b[0].second]; int minH = a[0]; cnt = 1; for (int i = 0; i < n; i++) { if (minH < a[i]) { minH = a[i]; cnt++; } see[i] = minH; } } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Buildings are Colorful! |
User | kurenai3110 |
Language | C++14 (GCC 5.4.1) |
Score | 350 |
Code Size | 1711 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
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 | 1 ms | 256 KB |
sub0_in2.txt | AC | 1 ms | 256 KB |
sub1_in1.txt | AC | 1 ms | 256 KB |
sub1_in2.txt | AC | 1 ms | 256 KB |
sub2_in1.txt | AC | 1 ms | 256 KB |
sub2_in2.txt | AC | 1 ms | 256 KB |
sub2_in3.txt | AC | 1 ms | 256 KB |
sub3_in1.txt | AC | 1 ms | 256 KB |
sub3_in2.txt | AC | 1 ms | 256 KB |