Submission #425434

# Submission time Handle Problem Language Result Execution time Memory
425434 2021-06-13T03:41:12 Z ngrace Shortcut (IOI16_shortcut) C++14
0 / 100
2000 ms 1064 KB
#include "shortcut.h"
#include <vector>
#include <queue>
#include <utility>
#include <iostream>
#include <limits.h>
using namespace std;
#define v vector
#define pii pair<int,int>
#define fi first
#define se second

v<v<long long>> adj;
int N;

long long diameter(){
    for(int k=0;k<2*N;k++){
        for(int i=0;i<2*N;i++){
            for(int j=0;j<2*N;j++){
                if(adj[i][k]==LLONG_MAX || adj[k][j]==LLONG_MAX) continue;
                if(adj[i][j] > adj[i][k] + adj[k][j]){
                    adj[i][j] = adj[i][k] + adj[k][j];
                }
            }
        }
    }
    long long out=0;
    for(int i=0;i<2*N;i++){
        for(int j=0;j<2*N;j++){
            if(adj[i][j]>out && adj[i][j]!=LLONG_MAX) out=adj[i][j];
        }
    }
    return out;
}

long long find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c)
{
    if(n<=500){
        N=n;
        adj=v<v<long long>> (2*n,v<long long>(2*N, LLONG_MAX));
        for(int i=0;i<n-1;i++){
            adj[i][i+1] = l[i];
            adj[i+1][i] = l[i];
            adj[i][i]=0;
        }
        for(int i=0;i<n;i++){
            adj[i][i+n] = d[i];
            adj[i+n][i] = d[i];
            adj[i+n][i+n]=0;
        }

        long long out=diameter();
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                adj=v<v<long long>> (2*n,v<long long>(2*N, LLONG_MAX));
                for(int i=0;i<n-1;i++){
                    adj[i][i+1] = l[i];
                    adj[i+1][i] = l[i];
                    adj[i][i]=0;
                }
                for(int i=0;i<n;i++){
                    adj[i][i+n] = d[i];
                    adj[i+n][i] = d[i];
                    adj[i+n][i+n]=0;
                }
                //create edge between
                adj[i][j] = c;
                adj[j][i] = c;

                long long diam=diameter();
                if(diam<out) out=diam;
            }
        }

        return out;
    }
}

Compilation message

shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:77:1: warning: control reaches end of non-void function [-Wreturn-type]
   77 | }
      | ^
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 292 KB n = 4, 80 is a correct answer
2 Correct 1 ms 204 KB n = 9, 110 is a correct answer
3 Correct 1 ms 292 KB n = 4, 21 is a correct answer
4 Correct 1 ms 204 KB n = 3, 4 is a correct answer
5 Correct 1 ms 204 KB n = 2, 62 is a correct answer
6 Correct 1 ms 204 KB n = 2, 3 is a correct answer
7 Correct 1 ms 288 KB n = 3, 29 is a correct answer
8 Correct 1 ms 204 KB n = 2, 3 is a correct answer
9 Correct 1 ms 204 KB n = 2, 3 is a correct answer
10 Correct 1 ms 204 KB n = 2, 2000000001 is a correct answer
11 Correct 1 ms 292 KB n = 2, 3000000000 is a correct answer
12 Correct 1 ms 204 KB n = 3, 3000000000 is a correct answer
13 Correct 1 ms 288 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 204 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 204 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 204 KB n = 5, 4000000000 is a correct answer
17 Correct 2 ms 204 KB n = 10, 1000000343 is a correct answer
18 Correct 2 ms 204 KB n = 10, 3189 is a correct answer
19 Correct 2 ms 204 KB n = 10, 7000000000 is a correct answer
20 Correct 1 ms 204 KB n = 5, 12 is a correct answer
21 Correct 1 ms 204 KB n = 5, 25 is a correct answer
22 Correct 1 ms 204 KB n = 2, 122 is a correct answer
23 Correct 2 ms 204 KB n = 10, 117 is a correct answer
24 Correct 2 ms 296 KB n = 10, 336 is a correct answer
25 Correct 2 ms 292 KB n = 10, 438 is a correct answer
26 Correct 2 ms 204 KB n = 10, 206 is a correct answer
27 Correct 3 ms 296 KB n = 10, 636 is a correct answer
28 Correct 1 ms 204 KB n = 4, 2399 is a correct answer
29 Correct 2 ms 292 KB n = 10, 10992 is a correct answer
30 Correct 1 ms 204 KB n = 10, 3112 is a correct answer
31 Execution timed out 2068 ms 1064 KB Time limit exceeded
32 Halted 0 ms 0 KB -