Submission #72774521
Source Code Expand
Copy
#include <stdio.h>#define INF 1010101010int n, k;int query[5123][4];int ans[128][128];int main(void) {int i, j, l;if (scanf("%d%d", &n, &k) != 2) return 1;for (i = 0; i < k; i++) {if (scanf("%d%d%d", &query[i][0], &query[i][1], &query[i][2]) != 3) return 1;if (query[i][0] == 1 && scanf("%d", &query[i][3]) != 1) return 1;}for (i = 1; i <= n; i++) {for (j = 1; j <= n; j++) ans[i][j] = INF;ans[i][i] = 0;}for (i = 0; i < k; i++) {
#include <stdio.h>
#define INF 1010101010
int n, k;
int query[5123][4];
int ans[128][128];
int main(void) {
int i, j, l;
if (scanf("%d%d", &n, &k) != 2) return 1;
for (i = 0; i < k; i++) {
if (scanf("%d%d%d", &query[i][0], &query[i][1], &query[i][2]) != 3) return 1;
if (query[i][0] == 1 && scanf("%d", &query[i][3]) != 1) return 1;
}
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) ans[i][j] = INF;
ans[i][i] = 0;
}
for (i = 0; i < k; i++) {
if (query[i][0] == 0) {
int res = ans[query[i][1]][query[i][2]];
printf("%d\n", res < INF ? res : -1);
} else if (query[i][0] == 1) {
int f = query[i][1], t = query[i][2], cost = query[i][3];
if (ans[f][t] > cost) {
ans[f][t] = cost;
for (j = 1; j <= n; j++) {
for (l = 1; l <= n; l++) {
int newcost = ans[j][f] + ans[f][t] + ans[t][l];
if (newcost < ans[j][l]) ans[j][l] = newcost;
}
}
}
if (ans[t][f] > cost) {
ans[t][f] = cost;
for (j = 1; j <= n; j++) {
for (l = 1; l <= n; l++) {
int newcost = ans[j][t] + ans[t][f] + ans[f][l];
if (newcost < ans[j][l]) ans[j][l] = newcost;
}
}
}
}
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - 船旅 |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 100 |
| Code Size | 1214 Byte |
| Status | AC |
| Exec Time | 7 ms |
| Memory | 1744 KiB |
Judge Result
| Set Name | set01 | set02 | set03 | set04 | set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| Status |
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| data1 | AC | 1 ms | 1596 KiB |
| data2 | AC | 1 ms | 1636 KiB |
| data3 | AC | 1 ms | 1600 KiB |
| data4 | AC | 4 ms | 1744 KiB |
| data5 | AC | 7 ms | 1744 KiB |