# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
139732 | muradeyn | Shortcut (IOI16_shortcut) | C++14 | 2 ms | 376 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |