QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#245065 | #7177. Many Many Cycles | std_abs# | WA | 1ms | 4092kb | C++17 | 2.2kb | 2023-11-09 18:22:18 | 2023-11-09 18:22:19 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
#define pb push_back
#define all(a) a.begin(), a.end()
#define sz(a) ((int)a.size())
const int mod = 998244353, N = 5005, M = 10005;
typedef pair<int, int> pi;
vector<int> g[N];
pii e[M];
ll w[M];
int pa[N], dep[N], low[N], _id;
vector<int> bcc[N], stk;
ll wd[N];
bool vis[N];
int go(int ei, int i) {
return e[ei].first ^ e[ei].second ^ i;
}
void dfs(int i, int p) {
dep[i] = low[i] = ~p ? dep[p] + 1 : 0;
stk.pb(i), pa[i] = p, vis[i] = true;
for (int ei : g[i]) if (go(ei, i) != p) {
int j = go(ei, i);
if (!vis[j]) {
wd[j] = wd[i] + w[ei];
dfs(j, i);
low[i] = min(low[i], low[j]);
if (low[j] >= dep[i]) {
int id = _id++, x;
do {
x = stk.back(), stk.pop_back();
bcc[x].push_back(id);
} while (x != j);
bcc[i].push_back(id);
}
else
low[i] = min(low[i], dep[j]);
}
}
}
ll gcd(int i, int j) {return j ? gcd(j, i % j) : i;}
int main() {
ios::sync_with_stdio(false), cin.tie(0);
int n, m;
cin >> n >> m;
for (int i = 0; i < m; ++i) {
int x, y, z;
cin >> x >> y >> z;
--x, --y;
g[x].push_back(i), g[y].push_back(i);
e[i] = pi(x, y);
w[i] = z;
}
for (int i = 0; i < n; ++i)
if (!vis[i])
dfs(i, -1);
fill(vis, vis + n, false);
vector<int> ord(n);
iota(all(ord), 0);
sort(all(ord), [&](int i, int j) {return dep[i] < dep[j];});
ll ans = 0;
for (int i : ord) {
for (int ei : g[i]) {
int j = go(ei, i);
if (pa[j] != i && dep[j] > dep[i]) {
vector<int> tmp;
tmp.pb(i);
tmp.pb(j);
while (!vis[tmp.back()])
vis[tmp.back()] = true, tmp.pb(pa[tmp.back()]);
ans = gcd(ans, gcd(w[ei] + wd[j] - wd[i], w[ei] + wd[j] - wd[tmp.back()] - (wd[tmp.back()] - wd[i])));
}
}
}
cout << abs(ans) << '\n';
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3856kb
input:
4 4 1 2 1 2 3 1 3 4 1 4 1 1
output:
4
result:
ok answer is '4'
Test #2:
score: 0
Accepted
time: 0ms
memory: 4080kb
input:
4 5 1 2 1 1 3 2 1 4 1 2 3 1 3 4 1
output:
4
result:
ok answer is '4'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
20 50 1 2 8 1 3 1 3 4 5 3 5 9 3 6 5 6 7 6 7 8 8 2 9 2 8 10 3 8 11 7 8 12 5 3 13 4 7 14 3 6 15 7 9 16 6 8 17 7 16 18 9 16 19 3 18 20 10 11 3 2 17 1 1 16 2 2 15 1 1 10 3 2 9 1 2 19 2 1 6 1 2 7 3 1 17 3 2 15 3 2 8 6 2 5 1 2 8 1 2 12 1 1 12 7 1 4 1 2 18 2 1 11 7 1 14 1 1 18 1 1 18 9 1 10 6 1 14 3 2 20 2...
output:
2
result:
ok answer is '2'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3820kb
input:
20 50 1 2 18468 1 3 26501 3 4 15725 3 5 29359 3 6 24465 6 7 28146 7 8 16828 2 9 492 8 10 11943 8 11 5437 8 12 14605 3 13 154 7 14 12383 6 15 18717 9 16 19896 8 17 21727 16 18 11539 16 19 19913 18 20 26300 11 3 2 17 1 1 16 2 2 15 1 1 10 3 2 9 1 2 19 2 1 6 1 2 7 3 1 17 3 2 15 3 2 8 6 2 5 1 2 8 1 2 12 ...
output:
1
result:
ok answer is '1'
Test #5:
score: 0
Accepted
time: 0ms
memory: 4092kb
input:
100 150 1 2 184676335 1 3 191705725 1 4 293606963 1 5 57078146 2 6 168279962 6 7 29961943 5 8 54392392 5 9 39020154 5 10 123837422 7 11 197199896 3 12 217274772 7 13 18709913 6 14 263007036 11 15 287053812 3 16 303347674 9 17 151417712 17 18 68705548 15 19 326652758 12 20 128598724 2 21 275290779 11...
output:
3
result:
ok answer is '3'
Test #6:
score: -100
Wrong Answer
time: 0ms
memory: 3864kb
input:
100 130 1 2 184676335 1 3 191705725 1 4 293606963 1 5 57078146 2 6 168279962 6 7 29961943 5 8 54392392 5 9 39020154 5 10 123837422 7 11 197199896 3 12 217274772 7 13 18709913 6 14 263007036 11 15 287053812 3 16 303347674 9 17 151417712 17 18 68705548 15 19 326652758 12 20 128598724 2 21 275290779 11...
output:
1
result:
wrong answer expected '7', found '1'