Submission #1228739

#TimeUsernameProblemLanguageResultExecution timeMemory
1228739khoinguArt Exhibition (JOI18_art)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
#define ll long long
#define int long long
#define fi(i,a,b) for(int i = a; i <= b; i ++)
#define fi   first
#define se   second
using namespace std;
const long long maxN = 5e5 + 5, INF = 1e17;

int n, p[maxN];
pair<int, int> x[maxN];

signed main() {
    if (fopen("task.inp", "r")) {
        freopen("task.inp", "r", stdin);
        freopen("task.out", "w", stdout);
    }
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> n;
    for(int i = 0; i < n; i ++) cin >> x[i].fi >> x[i].se;
    sort(x, x + n);
    p[0] = x[0].se;
    for(int i = 1; i < n; i ++) p[i] = p[i - 1] + x[i].se;
    // (p[r] - p[l - 1]) - x[r].fi + x[l].fi
    // (p[r] - x[r].fi) + (x[l].fi - p[l - 1])
    int ma = -INF, res = -INF;
    for(int i = 2; i < n; i ++) {
        ma = max(ma, x[i - 1].fi - p[i - 2]);
        res = max(res, ma + p[i] - x[i].fi);
    }
    res = max(res, p[0] - x[0].fi);
    if (n >= 2) res = max(res, p[1] - x[1].fi + x[0].fi);
    cout << res;
}

Compilation message (stderr)

art.cpp:5: warning: "fi" redefined
    5 | #define fi   first
      | 
art.cpp:4: note: this is the location of the previous definition
    4 | #define fi(i,a,b) for(int i = a; i <= b; i ++)
      | 
art.cpp: In function 'int main()':
art.cpp:15:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |         freopen("task.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
art.cpp:16:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |         freopen("task.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...