Submission #4060890
Source Code Expand
#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <map>
#include <algorithm>
#include <cstdlib>
#include <cmath>
#include <numeric>
#include <utility>
#include <queue>
#include <set>
#define ALL_OF(x) (x).begin(), (x).end()
#define REP(i,n) for(int i=0, i##_len=(n); i<i##_len; i++)
template<class T> bool chmax(T &a, const T &b) {if (a < b) {a = b; return 1;} return 0; }
template<class T> bool chmin(T &a, const T &b) {if (a > b) {a = b; return 1;} return 0; }
typedef long long ll;
using namespace std;
int main() {
ll k, n;
cin >> n >> k;
vector<vector<ll>> td(n, vector<ll>(3, 0));
REP(i, n) {
cin >> td[i][0] >> td[i][1];
td[i][2] = 0;
}
sort(ALL_OF(td), [](vector<ll> &a, vector<ll>& b) -> bool {
return a[1] > b[1];
});
vector<bool> m(n+1, false);
ll bonus = 1;
ll ans = 0;
REP(i, n) {
if (!m[td[i][0]]) {
m[td[i][0]] = true;
td[i][2] = bonus;
bonus += 2;
}
if (i < k) ans += td[i][1] + td[i][2];
}
int l = k, r = k-1;
ll cand = ans;
while (true) {
for (l--; l >= 0; l--) if (td[l][2] == 0) break;
for (r++; r < n; r++) if (td[r][2] != 0) break;
if (l < 0 || r >= n) break;
cand += td[r][1] + td[r][2] - td[l][1];
chmax(ans, cand);
}
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Various Sushi |
| User | ganmodokix |
| Language | C++14 (GCC 5.4.1) |
| Score | 400 |
| Code Size | 1468 Byte |
| Status | AC |
| Exec Time | 87 ms |
| Memory | 5888 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, s1.txt, s2.txt, s3.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 1 ms | 256 KiB |
| 02.txt | AC | 1 ms | 256 KiB |
| 03.txt | AC | 1 ms | 256 KiB |
| 04.txt | AC | 1 ms | 256 KiB |
| 05.txt | AC | 1 ms | 256 KiB |
| 06.txt | AC | 1 ms | 256 KiB |
| 07.txt | AC | 1 ms | 256 KiB |
| 08.txt | AC | 1 ms | 256 KiB |
| 09.txt | AC | 1 ms | 256 KiB |
| 10.txt | AC | 1 ms | 256 KiB |
| 11.txt | AC | 1 ms | 256 KiB |
| 12.txt | AC | 1 ms | 256 KiB |
| 13.txt | AC | 1 ms | 256 KiB |
| 14.txt | AC | 14 ms | 1920 KiB |
| 15.txt | AC | 47 ms | 4608 KiB |
| 16.txt | AC | 31 ms | 2176 KiB |
| 17.txt | AC | 58 ms | 3968 KiB |
| 18.txt | AC | 3 ms | 384 KiB |
| 19.txt | AC | 75 ms | 4992 KiB |
| 20.txt | AC | 40 ms | 5248 KiB |
| 21.txt | AC | 57 ms | 5504 KiB |
| 22.txt | AC | 87 ms | 5760 KiB |
| 23.txt | AC | 86 ms | 5632 KiB |
| 24.txt | AC | 85 ms | 5504 KiB |
| 25.txt | AC | 83 ms | 5504 KiB |
| 26.txt | AC | 87 ms | 5760 KiB |
| 27.txt | AC | 87 ms | 5760 KiB |
| 28.txt | AC | 87 ms | 5760 KiB |
| 29.txt | AC | 87 ms | 5888 KiB |
| 30.txt | AC | 87 ms | 5760 KiB |
| 31.txt | AC | 54 ms | 5760 KiB |
| 32.txt | AC | 79 ms | 5760 KiB |
| 33.txt | AC | 76 ms | 5760 KiB |
| 34.txt | AC | 85 ms | 5760 KiB |
| 35.txt | AC | 78 ms | 5248 KiB |
| 36.txt | AC | 84 ms | 5504 KiB |
| 37.txt | AC | 83 ms | 5376 KiB |
| 38.txt | AC | 81 ms | 5376 KiB |
| s1.txt | AC | 1 ms | 256 KiB |
| s2.txt | AC | 1 ms | 256 KiB |
| s3.txt | AC | 1 ms | 256 KiB |