# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
139732 | 2019-08-01T10:45:39 Z | muradeyn | Shortcut (IOI16_shortcut) | C++14 | 2 ms | 376 KB |
#include "shortcut.h" #include <bits/stdc++.h> #define F first #define S second using namespace std; const int maxx = 6000; const long long inf = 10000000000000000LL; int n , nxt; long long x , w , old , res , mn; long long adj[maxx][maxx] , d[maxx]; priority_queue< pair<long long,int> >q; void bfs(int s) { for (int i = 0;i<nxt;i++)d[i] = inf; d[s] = 0; q.push( {0 , s} ); while (!q.empty()) { x = q.top().S; w = q.top().F; q.pop(); if (-w > d[x])continue; for (int i = 0;i<nxt;i++) { if (adj[x][i] == 0)continue; if (d[i] > d[x] + adj[x][i]) { d[i] = d[x] + adj[x][i]; q.push({-d[i] , i}); } } } } long long find_shortcut(int n, vector<int> l, vector<int> de, int c) { for (int i = 0;i < n - 1;i++) adj[i][i + 1] = adj[i + 1][i] = l[i]; nxt = n; for (int i = 0;i < n;i++) { if (de[i] == 0)continue; adj[i][nxt] = adj[nxt++][i] = de[i]; } for (int k = 0;k<nxt;k++) { bfs(k); for (int ii = 0;ii<nxt;ii++)mn = max(mn , d[ii]); } res = mn; for (int i = 0;i < n;i++) { for (int j = i + 1;j < n;j++) { old = adj[i][j]; adj[i][j] = adj[j][i] = c; mn = 0; for (int k = 0;k<nxt;k++) { bfs(k); for (int ii = 0;ii<nxt;ii++) mn = max(mn , d[ii]); } if (res == 0)res = mn; else if (mn < res)res = mn; adj[i][j] = adj[j][i] = old; } } return res; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | n = 4, incorrect answer: jury 80 vs contestant 10000000000000000 |
2 | Halted | 0 ms | 0 KB | - |