이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#ifndef Local
#pragma GCC optimize ("O3")
#pragma GCC optimize ("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma comment(linker, "/STACK:1024000000,1024000000")
#endif
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define popCnt(x) (__builtin_popcountll(x))
typedef long long Long;
const int N = 2e5 + 5;
pair<int, int> cake[N];
int main() {
ios_base::sync_with_stdio(0), cin.tie(0), cerr.tie(0);
#ifdef Local
freopen("test.in", "r", stdin);
#else
#define endl '\n'
#endif
int n, m;
cin >> n >> m;
for (int i = 0; i < n; ++i) {
cin >> cake[i].second >> cake[i].first;
}
sort(cake, cake + n);
Long res = LLONG_MIN;
for (int i = 0; i < n; ++i) {
Long sum = 0;
multiset<int> ms;
for (int j = i; j < n; ++j) {
sum += cake[j].second;
ms.insert(cake[j].second);
if (ms.size() > m) {
sum -= *ms.begin();
ms.erase(ms.begin());
}
if (ms.size() == m) {
res = max(res, sum - 2 * (cake[j].first - cake[i].first));
}
}
}
cout << res << endl;
}
컴파일 시 표준 에러 (stderr) 메시지
cake3.cpp:5:0: warning: ignoring #pragma comment [-Wunknown-pragmas]
#pragma comment(linker, "/STACK:1024000000,1024000000")
cake3.cpp: In function 'int main()':
cake3.cpp:44:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (ms.size() > m) {
~~~~~~~~~~^~~
cake3.cpp:48:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (ms.size() == m) {
~~~~~~~~~~^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |