Submission #328629

#TimeUsernameProblemLanguageResultExecution timeMemory
328629arayiArt Exhibition (JOI18_art)C++17
100 / 100
202 ms14496 KiB
//Arayi #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <queue> #include <stack> #include <algorithm> #include <math.h> #include <vector> #include <cstring> #include <ctime> #include <set> #include <bitset> #include <map> #include <unordered_map> #include <unordered_set> #include <iomanip> #include <ctime> #include <climits> #include <cassert> #include <chrono> #include <random> #include <complex> #define fr first #define sc second #define MP make_pair #define ad push_back #define PB push_back #define fastio ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define lli long long int #define y1 arayikhalatyan #define j1 jigglypuff #define ld long double #define itn int #define pir pair<int, int> #define all(x) (x).begin(), (x).end() #define str string #define enl endl #define en endl #define cd complex<long double> #define vcd vector<cd> #define vii vector<int> #define vlli vector<lli> using namespace std; lli gcd(lli a, lli b) { return (b == 0LL ? a : gcd(b, a % b)); } ld dist(ld x, ld y1, ld x2, ld y2) { return sqrt((x - x2) * (x - x2) + (y1 - y2) * (y1 - y2)); } lli S(lli a) { return (a * (a + 1LL)) / 2LL; } mt19937 rnd(363542); char vow[] = { 'a', 'e', 'i', 'o', 'u' }; int dx[] = { 0, -1, 0, 1, -1, -1, 1, 1, 0 }; int dy[] = { -1, 0, 1, 0, -1, 1, -1, 1, 0 }; const int N = 5e5 + 30; const lli mod = 998244353; const ld pi = acos(-1); const ld e = 1e-13; lli bp(lli a, lli b = mod - 2LL) { lli ret = 1; while (b) { if (b & 1) ret *= a, ret %= mod; a *= a; a %= mod; b >>= 1; } return ret; } ostream& operator<<(ostream& c, pir a) { c << a.fr << " " << a.sc; return c; } struct pt { lli x, y; int ind; int bl; bool operator==(const pt& a) { return ind == a.ind; } bool operator<(const pt& b) { if (x == b.x) return y < b.y; return x < b.x; } }; itn n; pair<lli, lli> a[N]; lli pat, mx[N]; int main() { fastio; cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i].fr >> a[i].sc; } sort(a + 1, a + n + 1); for (int i = 1; i <= n; i++) a[i].sc += a[i - 1].sc; for (int i = n; i > 0; i--) { mx[i] = a[i].sc - a[i].fr; if (i < n)mx[i] = max(mx[i], mx[i + 1]); pat = max(pat, mx[i] + a[i].fr - a[i - 1].sc); } cout << pat << endl; return 0; } /* __ *(><)* \/ / ||/ --|| || /\ / \ / \ */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...