# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
392469 | 2021-04-21T08:13:31 Z | patrikpavic2 | Divide and conquer (IZhO14_divide) | C++17 | 86 ms | 9964 KB |
#include <cstdio> #include <cstring> #include <vector> #include <algorithm> #define X first #define Y second #define PB push_back using namespace std; typedef long long ll; typedef pair < int, pair < ll, ll > > pip; const int N = 2e5 + 500; const ll INF = (ll)1e18; int n; vector < pip > v; vector < ll > sz; int pos(int x){ return lower_bound(sz.begin(), sz.end(), x) - sz.begin(); } ll loga[N]; void add(int x, ll val){ for(x += 10; x < N; x += x & -x) loga[x] = min(loga[x], val); } ll query(int x){ ll ans = INF; for(x += 10; x ; x -= x & -x) ans = min(loga[x], ans); return ans; } int main(){ for(int i = 0;i < N;i++) loga[i] = INF; scanf("%d", &n); for(int i = 0;i < n;i++){ int x, g, e; scanf("%d%d%d", &x, &g, &e); v.PB({x, {g, e}}); x++; } v.PB({0, {0, 0}}); sort(v.begin(), v.end()); for(int i = 1;i <= n;i++){ v[i].Y.X += v[i - 1].Y.X; v[i].Y.Y += v[i - 1].Y.Y; sz.PB(v[i].Y.Y - v[i].X); sz.PB(v[i - 1].Y.Y - v[i].X); } sort(sz.begin(), sz.end()); sz.erase(unique(sz.begin(), sz.end()), sz.end()); ll sol = 0; for(int i = 1;i <= n;i++){ add(pos(v[i - 1].Y.Y - v[i].X), v[i - 1].Y.X); sol = max(sol, v[i].Y.X - query(pos(v[i].Y.Y - v[i].X))); } printf("%lld\n", sol); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1856 KB | Output is correct |
2 | Correct | 1 ms | 1740 KB | Output is correct |
3 | Correct | 1 ms | 1740 KB | Output is correct |
4 | Correct | 1 ms | 1740 KB | Output is correct |
5 | Correct | 1 ms | 1740 KB | Output is correct |
6 | Correct | 1 ms | 1740 KB | Output is correct |
7 | Correct | 2 ms | 1744 KB | Output is correct |
8 | Correct | 1 ms | 1868 KB | Output is correct |
9 | Correct | 1 ms | 1808 KB | Output is correct |
10 | Correct | 1 ms | 1856 KB | Output is correct |
11 | Correct | 1 ms | 1872 KB | Output is correct |
12 | Correct | 1 ms | 1868 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1856 KB | Output is correct |
2 | Correct | 1 ms | 1740 KB | Output is correct |
3 | Correct | 1 ms | 1740 KB | Output is correct |
4 | Correct | 1 ms | 1740 KB | Output is correct |
5 | Correct | 1 ms | 1740 KB | Output is correct |
6 | Correct | 1 ms | 1740 KB | Output is correct |
7 | Correct | 2 ms | 1744 KB | Output is correct |
8 | Correct | 1 ms | 1868 KB | Output is correct |
9 | Correct | 1 ms | 1808 KB | Output is correct |
10 | Correct | 1 ms | 1856 KB | Output is correct |
11 | Correct | 1 ms | 1872 KB | Output is correct |
12 | Correct | 1 ms | 1868 KB | Output is correct |
13 | Correct | 1 ms | 1868 KB | Output is correct |
14 | Correct | 1 ms | 1868 KB | Output is correct |
15 | Correct | 2 ms | 1868 KB | Output is correct |
16 | Correct | 2 ms | 1868 KB | Output is correct |
17 | Correct | 2 ms | 1872 KB | Output is correct |
18 | Correct | 2 ms | 1872 KB | Output is correct |
19 | Correct | 2 ms | 1864 KB | Output is correct |
20 | Correct | 2 ms | 1868 KB | Output is correct |
21 | Correct | 2 ms | 1868 KB | Output is correct |
22 | Correct | 3 ms | 1996 KB | Output is correct |
23 | Correct | 5 ms | 2260 KB | Output is correct |
24 | Correct | 5 ms | 2252 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1856 KB | Output is correct |
2 | Correct | 1 ms | 1740 KB | Output is correct |
3 | Correct | 1 ms | 1740 KB | Output is correct |
4 | Correct | 1 ms | 1740 KB | Output is correct |
5 | Correct | 1 ms | 1740 KB | Output is correct |
6 | Correct | 1 ms | 1740 KB | Output is correct |
7 | Correct | 2 ms | 1744 KB | Output is correct |
8 | Correct | 1 ms | 1868 KB | Output is correct |
9 | Correct | 1 ms | 1808 KB | Output is correct |
10 | Correct | 1 ms | 1856 KB | Output is correct |
11 | Correct | 1 ms | 1872 KB | Output is correct |
12 | Correct | 1 ms | 1868 KB | Output is correct |
13 | Correct | 1 ms | 1868 KB | Output is correct |
14 | Correct | 1 ms | 1868 KB | Output is correct |
15 | Correct | 2 ms | 1868 KB | Output is correct |
16 | Correct | 2 ms | 1868 KB | Output is correct |
17 | Correct | 2 ms | 1872 KB | Output is correct |
18 | Correct | 2 ms | 1872 KB | Output is correct |
19 | Correct | 2 ms | 1864 KB | Output is correct |
20 | Correct | 2 ms | 1868 KB | Output is correct |
21 | Correct | 2 ms | 1868 KB | Output is correct |
22 | Correct | 3 ms | 1996 KB | Output is correct |
23 | Correct | 5 ms | 2260 KB | Output is correct |
24 | Correct | 5 ms | 2252 KB | Output is correct |
25 | Correct | 5 ms | 2188 KB | Output is correct |
26 | Correct | 8 ms | 2496 KB | Output is correct |
27 | Correct | 8 ms | 2632 KB | Output is correct |
28 | Correct | 34 ms | 5824 KB | Output is correct |
29 | Correct | 38 ms | 6084 KB | Output is correct |
30 | Correct | 81 ms | 9904 KB | Output is correct |
31 | Correct | 66 ms | 9460 KB | Output is correct |
32 | Correct | 66 ms | 9520 KB | Output is correct |
33 | Correct | 71 ms | 9476 KB | Output is correct |
34 | Correct | 71 ms | 9328 KB | Output is correct |
35 | Correct | 70 ms | 9900 KB | Output is correct |
36 | Correct | 86 ms | 9964 KB | Output is correct |