7750 | 2024. 01. 11 06:52:25 | TuruTamas | Hálózatjavítás | cpp17 | Időlimit túllépés 3/50 | 400ms | 8512 KiB |
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
ifstream in_file("minta/be1.txt");
#define input in_file
#define INTHENAMEOFGOD
#else
#define input cin
#define INTHENAMEOFGOD \
ios::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
#endif
typedef long long ll;
typedef vector<ll> vi;
typedef vector<vi> vvi;
typedef vector<bool> vb;
typedef pair<ll, ll> pii;
ll N, M, a, b, max_korszam;
vvi G;
vi becsat, korszam;
vi kor;
vector<char> vis;
map<pii, ll> m;
bool dfs1(ll x) {
vis[x] = 1;
for (ll next : G[x]) {
if (!vis[next] && dfs1(next)) {
kor[x] = next;
return true;
}
if (vis[next] == 1) {
kor[x] = next;
return true;
}
}
vis[x] = 2;
return false;
}
void korbejar(ll tol, ll ig) {
ll most = tol;
while (most != ig) {
m[{most, kor[most]}]++;
most = kor[most];
}
}
void dfs2(ll x, ll kezdx) {
vis[x] = 1;
for (ll next : G[x]) {
if (kor[next] != -1) {
korbejar(next, kezdx);
continue;
}
if (!vis[next]) {
dfs2(next, kezdx);
}
}
}
int main() {
INTHENAMEOFGOD
input >> N >> M;
G.resize(N);
for (ll m = 0; m < M; m++) {
input >> a >> b;
a--; b--;
G[a].push_back(b);
}
vis.assign(N, 0);
becsat.assign(N, 0);
korszam.assign(N, 0);
kor.assign(N, -1);
dfs1(0);
vis.assign(N, 0);
for (ll n = 0; n < N; n++) {
if (kor[n] != -1) {
for (ll next : G[n]) {
if (next != kor[n]) {
dfs2(next, n);
}
}
}
}
ll maxfok = max_element(m.begin(), m.end(), [](pair<pii, ll> a, pair<pii, ll> b) { return a.second < b.second; })->second;
ll db = 0;
string s;
ostringstream os(s);
for (auto [el, fok] : m) {
if (fok == maxfok) {
db++;
os << el.first+1 << " " << el.second+1 << "\n";
}
}
cout << db << "\n" << os.str();
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 3/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1860 KiB | |||
2 | Időlimit túllépés | 0/0 | 400ms | 3216 KiB | |||
3 | Hibás válasz | 0/1 | 3ms | 2408 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2636 KiB | |||
5 | Időlimit túllépés | 0/1 | 367ms | 2044 KiB | |||
6 | Hibás válasz | 0/1 | 83ms | 3252 KiB | |||
7 | Hibás válasz | 0/1 | 67ms | 3540 KiB | |||
8 | Időlimit túllépés | 0/2 | 358ms | 3004 KiB | |||
9 | Időlimit túllépés | 0/2 | 375ms | 3304 KiB | |||
10 | Elfogadva | 2/2 | 8ms | 4252 KiB | |||
11 | Időlimit túllépés | 0/2 | 400ms | 3992 KiB | |||
12 | Hibás válasz | 0/2 | 67ms | 4720 KiB | |||
13 | Időlimit túllépés | 0/2 | 372ms | 4708 KiB | |||
14 | Időlimit túllépés | 0/2 | 361ms | 4492 KiB | |||
15 | Időlimit túllépés | 0/2 | 381ms | 5208 KiB | |||
16 | Időlimit túllépés | 0/2 | 370ms | 5344 KiB | |||
17 | Időlimit túllépés | 0/2 | 351ms | 5912 KiB | |||
18 | Időlimit túllépés | 0/2 | 361ms | 6820 KiB | |||
19 | Időlimit túllépés | 0/2 | 358ms | 6704 KiB | |||
20 | Időlimit túllépés | 0/2 | 381ms | 7040 KiB | |||
21 | Időlimit túllépés | 0/2 | 363ms | 7192 KiB | |||
22 | Időlimit túllépés | 0/2 | 338ms | 7436 KiB | |||
23 | Időlimit túllépés | 0/3 | 354ms | 7640 KiB | |||
24 | Időlimit túllépés | 0/4 | 361ms | 8076 KiB | |||
25 | Időlimit túllépés | 0/4 | 365ms | 8104 KiB | |||
26 | Időlimit túllépés | 0/4 | 379ms | 8512 KiB |