QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#356610 | #853. Flat Organization | Stinny | WA | 11ms | 3768kb | C++23 | 1.6kb | 2024-03-18 03:35:57 | 2024-03-18 03:35:58 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e3 + 7;
const int INF = 1e16 + 1337;
int to[N][N], pr[N], d[N];
bool used[N];
void solve() {
int n;
cin >> n;
pair <int, int> bd = {0, 0}, sd = {INF, 0};
for (int i = 0; i < n; i++) {
int deg = 0;
for (int j = 0; j < n; j++) {
cin >> to[j][i];
if (to[j][i] > 0)
deg++;
}
bd = max(bd, make_pair(deg, i));
sd = min(bd, make_pair(deg, i));
}
if (n == 2) {
cout << "NO\n";
return;
}
fill(d, d + n, INF);
fill(used, used + n, false);
int s = sd.second, e = bd.second;
d[s] = 0;
for (int i = 0; i < n; i++) {
int u = 0, dn = INF;
for (int v = 0; v < n; v++) {
if (!used[v] && d[v] < dn) {
u = v;
dn = d[v];
}
}
used[u] = true;
for (int v = 0; v < n; v++) {
if (d[v] > dn + to[u][v]) {
d[v] = dn + to[u][v];
pr[v] = u;
}
}
}
int u = e;
vector <pair <int, int>> ans;
while (u != sd.second) {
if (to[pr[u]][u] != 0)
ans.push_back({pr[u], u});
u = pr[u];
}
cout << "YES\n" << ans.size() << " " << d[e] << "\n";
for (auto& [u, v] : ans)
cout << v + 1 << " " << u + 1 << "\n";
}
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--)
solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3516kb
input:
1 5 0 1 0 6 11 0 0 1 6 12 2 0 0 7 12 0 0 0 0 4 0 0 0 0 0
output:
YES 2 10 2 4 4 5
result:
ok OK!
Test #2:
score: -100
Wrong Answer
time: 11ms
memory: 3768kb
input:
100 5 0 1 0 6 11 0 0 1 6 12 2 0 0 7 12 0 0 0 0 4 0 0 0 0 0 1 0 2 0 0 7 0 2 0 1000000000 0 0 3 0 0 5 6 0 0 0 7 0 3 0 4 6 0 0 0 0 1 0 3 0 4 0 0 0 0 6 3 0 3 0 0 0 10 0 6 3 0 0 3 0 1999999998 1999999999 0 0 1999999998 0 0 0 50 0 105800 801 1800 64800 0 259200 288801 72201 12801 125000 20001 28801 33800 ...
output:
YES 2 10 2 4 4 5 YES 0 0 NO NO YES 0 0 YES 1 4 1 2 YES 0 0 YES 1 6 2 3 YES 1 1999999999 1 3 YES 0 0 YES 0 0 YES 1 236 1 18 YES 3 844 3 8 1 41 14 21 YES 0 0 YES 0 0 YES 2 644 4 17 43 19 YES 1 462 12 35 YES 0 0 YES 4 1547 27 26 26 19 19 39 24 12 YES 2 955 35 7 7 50 YES 0 0 YES 2 1236 32 44 49 10 YES 3...
result:
wrong answer Test 7: The resulting graph is not strongly connected