Submission #1020842

# Submission time Handle Problem Language Result Execution time Memory
1020842 2024-07-12T10:24:34 Z vjudge1 Shortcut (IOI16_shortcut) C++17
0 / 100
2000 ms 468 KB
#include <bits/stdc++.h>
#define ent '\n'

//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")

typedef long long ll;
using namespace std;
const int maxn = 2e5+12;

ll pref[maxn];
int p[maxn];
int D[maxn];
int n;

long long find_shortcut(int N, vector <int> l, vector <int> d, int c){
    n = N;
    for(int i=1;i<n;i++){
        pref[i] = pref[i-1] + l[i-1];
        p[i] = i;
        p[i-1] = i-1;
        D[i] = d[i], D[i-1] = d[i-1];
    }
    sort(p, p+n, [](int i, int j){
        return D[i] < D[j];
    });
    ll ans = 1e18;
    for(int &x:p){
        for(int y=n-1;y>x;y--){
            ll val = *max_element(d.begin(), d.end()), mn = 0;
            ll mxl = 0, mxr = 0;
            for(int i=0;i<=x;i++) {
                if(i != x) mxl = max(mxl, pref[x] - pref[i] + d[i]);
                val = max(val, pref[i] + d[i] + mn);
                mn = max(mn, d[i] - pref[i]);
            }
            if(val >= ans) continue;
            mn = -pref[y];
            for(int i=y;i<n;i++){
                if(i != y) mxr = max(mxr, pref[i] - pref[y] + d[i]);
                val = max(val, pref[i] + d[i] + mn);
                mn = max(mn, d[i] - pref[i]);
            }
            ll cur = val;
            val = max(val, mxl + mxr + min(pref[y] - pref[x], (ll)c));
            if(val >= ans) continue;
            for(int i=x;i<=y;i++){
                val = max(val, mxl + min(pref[i] - pref[x], pref[y] - pref[i] + c) + d[i]);
                val = max(val, mxr + min(pref[y] - pref[i], pref[i] - pref[x] + c) + d[i]);
                for(int j=i+1;j<=y;j++){
                    val = max(val, min(pref[j] - pref[i], pref[i] - pref[x] + pref[y] - pref[j] + c) + d[i] + d[j]);
                }
                if(val >= ans) break;
            }
            ans = min(ans, val);
        }
    }
    return ans;
}

Compilation message

shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:44:16: warning: unused variable 'cur' [-Wunused-variable]
   44 |             ll cur = val;
      |                ^~~
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 344 KB n = 4, 80 is a correct answer
2 Correct 34 ms 456 KB n = 9, 110 is a correct answer
3 Correct 9 ms 348 KB n = 4, 21 is a correct answer
4 Correct 5 ms 348 KB n = 3, 4 is a correct answer
5 Correct 2 ms 348 KB n = 2, 62 is a correct answer
6 Correct 2 ms 348 KB n = 2, 3 is a correct answer
7 Correct 4 ms 348 KB n = 3, 29 is a correct answer
8 Correct 3 ms 456 KB n = 2, 3 is a correct answer
9 Correct 2 ms 348 KB n = 2, 3 is a correct answer
10 Correct 3 ms 344 KB n = 2, 2000000001 is a correct answer
11 Correct 2 ms 468 KB n = 2, 3000000000 is a correct answer
12 Correct 4 ms 344 KB n = 3, 3000000000 is a correct answer
13 Correct 4 ms 348 KB n = 3, 3000000000 is a correct answer
14 Correct 7 ms 456 KB n = 4, 3000000001 is a correct answer
15 Correct 7 ms 348 KB n = 4, 4000000000 is a correct answer
16 Correct 10 ms 348 KB n = 5, 4000000000 is a correct answer
17 Correct 45 ms 348 KB n = 10, 1000000343 is a correct answer
18 Correct 52 ms 428 KB n = 10, 3189 is a correct answer
19 Correct 45 ms 348 KB n = 10, 7000000000 is a correct answer
20 Correct 17 ms 344 KB n = 5, 12 is a correct answer
21 Correct 11 ms 344 KB n = 5, 25 is a correct answer
22 Correct 2 ms 348 KB n = 2, 122 is a correct answer
23 Correct 63 ms 436 KB n = 10, 117 is a correct answer
24 Correct 59 ms 344 KB n = 10, 336 is a correct answer
25 Correct 29 ms 344 KB n = 10, 438 is a correct answer
26 Correct 50 ms 348 KB n = 10, 206 is a correct answer
27 Correct 41 ms 344 KB n = 10, 636 is a correct answer
28 Correct 8 ms 344 KB n = 4, 2399 is a correct answer
29 Correct 57 ms 344 KB n = 10, 10992 is a correct answer
30 Correct 48 ms 348 KB n = 10, 3112 is a correct answer
31 Execution timed out 2045 ms 344 KB Time limit exceeded
32 Halted 0 ms 0 KB -