Submission #572859

# Submission time Handle Problem Language Result Execution time Memory
572859 2022-06-05T11:50:44 Z jasmin Shortcut (IOI16_shortcut) C++14
0 / 100
2000 ms 340 KB
#include<bits/stdc++.h>
#include "shortcut.h"

using namespace std;
#define int long long
const int inf=1e18;

int farthest(int a, vector<vector<pair<int,int> > >& adi, int n){
    vector<int> dist(n, inf);
    vector<bool> vis(n);
    dist[a]=0;
    priority_queue<pair<int,int> > pq;
    pq.push({-0, a});

    int ans=a;
    while(!pq.empty()){
        int v=pq.top().second;
        pq.pop();

        if(vis[v]) continue;
        vis[v]=true;
        ans=v;

        for(auto u: adi[v]){
            if(dist[v]+u.second<dist[u.first]){
                dist[u.first]=dist[v]+u.second;
                pq.push({-dist[u.first], u.first});
            }
        }
    }
    return dist[ans];
}

int diameter(int n, vector<vector<pair<int,int> > >& adi){
    int ans=0;
    for(int i=0; i<n; i++){
        ans=max(ans, farthest(i, adi, n));
    }
    return ans;
}

long long find_shortcut(int32_t n, std::vector<int32_t> l, std::vector<int32_t> d, int32_t c)
{
    vector<vector<pair<int,int> > > adi(n*2);
    for(int i=0; i<n-1; i++){
        adi[i].push_back({i+1, (int)l[i]});
        adi[i+1].push_back({i, (int)l[i]});
    }
    for(int i=0; i<n; i++){
        adi[i].push_back({i+n, (int)d[i]});
        adi[i+n].push_back({i, (int)d[i]});
    }

    int best=diameter(n*2, adi);
    for(int i=0; i<n; i++){
        for(int j=i+1; j<n; j++){

            adi[i].push_back({j, c});
            adi[j].push_back({i, c});
            /*if(diameter(n*2, adi)<best){
                cout << "=> " << diameter(n*2, adi) << " " << i << " " << j << "\n";
            }*/
            best=min(best, diameter(n*2, adi));
            adi[i].pop_back();
            adi[j].pop_back();

        }
    }
    return best;
}

/*signed main(){
    int n;
    cin >> n;
    vector<int> l(n-1);
    for(int i=0; i<n-1; i++){
        cin >> l[i];
    }
    vector<int> d(n);
    for(int i=0; i<n; i++){
        cin >> d[i];
    }
    int c;
    cin >> c; 

    cout << find_shortcut(n, l, d, c) << "\n";
}*/
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 ms 212 KB n = 9, 110 is a correct answer
3 Correct 0 ms 212 KB n = 4, 21 is a correct answer
4 Correct 0 ms 212 KB n = 3, 4 is a correct answer
5 Correct 0 ms 212 KB n = 2, 62 is a correct answer
6 Correct 0 ms 212 KB n = 2, 3 is a correct answer
7 Correct 0 ms 212 KB n = 3, 29 is a correct answer
8 Correct 0 ms 212 KB n = 2, 3 is a correct answer
9 Correct 0 ms 212 KB n = 2, 3 is a correct answer
10 Correct 0 ms 212 KB n = 2, 2000000001 is a correct answer
11 Correct 0 ms 340 KB n = 2, 3000000000 is a correct answer
12 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
13 Correct 0 ms 212 KB n = 3, 3000000000 is a correct answer
14 Correct 0 ms 212 KB n = 4, 3000000001 is a correct answer
15 Correct 0 ms 212 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 212 KB n = 5, 4000000000 is a correct answer
17 Correct 1 ms 212 KB n = 10, 1000000343 is a correct answer
18 Correct 1 ms 212 KB n = 10, 3189 is a correct answer
19 Correct 1 ms 212 KB n = 10, 7000000000 is a correct answer
20 Correct 0 ms 212 KB n = 5, 12 is a correct answer
21 Correct 0 ms 212 KB n = 5, 25 is a correct answer
22 Correct 0 ms 212 KB n = 2, 122 is a correct answer
23 Correct 1 ms 212 KB n = 10, 117 is a correct answer
24 Correct 1 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 1 ms 212 KB n = 10, 206 is a correct answer
27 Correct 2 ms 212 KB n = 10, 636 is a correct answer
28 Correct 0 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 1 ms 212 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 212 KB n = 10, 3112 is a correct answer
31 Execution timed out 2056 ms 212 KB Time limit exceeded
32 Halted 0 ms 0 KB -