제출 #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...