제출 #1137125

#제출 시각아이디문제언어결과실행 시간메모리
1137125trMatherzCake 3 (JOI19_cake3)C++20
0 / 100
1 ms320 KiB
#include <iostream> // #include <fstream> // std::ifstream cin ("tttt.in"); // std::ofstream cout ("tttt.out"); #include <cmath> #include <set> #include <map> #include <queue> #include <string> #include <vector> #include <array> #include <algorithm> #include <numeric> #include <iomanip> #include <unordered_set> #include <stack> #include <ext/pb_ds/assoc_container.hpp> #include <random> #include <chrono> #include <bitset> #include <complex> using namespace std; using namespace __gnu_pbds; #define ll long long #define f first #define s second template <class T> using iset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; template <typename T, typename U> bool emin(T &a, const U &b) { return b < a ? a = b, true : false; } template <typename T, typename U> bool emax(T &a, const U &b) { return b > a ? a = b, true : false; } typedef uint64_t hash_t; ll const inf = (ll) 1e15 + 7; int const M = (ll) 1e9 + 7; int const IM = (ll) 5e8 + 4; int main() { int n, m; cin >> n >> m; vector<pair<ll, ll>> a(n); for(auto &u : a) cin >> u.f >> u.s; sort(a.begin(), a.end(), [](auto x, auto y) { return x.s < y.s; }); ll sum = 0; for(int i = 0; i < m; i++) sum += a[i].f; ll an = sum - 2 * (a[m - 1].s - a[0].s); for(int i = 1; i + m <= n; i++) { sum += a[i + m - 1].f - a[i - 1].f; emax(an, sum - 2 * (a[i + m - 1].s - a[i].s)); } cout << an; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...