QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#375757 | #6830. Just Some Bad Memory | 369Pai | WA | 34ms | 16852kb | C++14 | 1.9kb | 2024-04-03 15:32:20 | 2024-04-03 15:32:20 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5 , M = N * 2;
int n , m , dep[N] , mx[N];
int num , dfn[N] , low[N];
int cnt , col[N] , sz[N] , deg[N];
int tot = 1 , head[N];
struct Edge{int to , nxt;}e[M * 2];
bool bridge[M * 2] , even , odd , chain;
void Add(int u , int v){e[++tot] = {v , head[u]} , head[u] = tot;}
void Dfs(int u , int fa)
{
low[u] = dfn[u] = ++num;
dep[u] = dep[fa] + 1 , mx[u] = 0;
for(int i = head[u] ; i ; i = e[i].nxt)
{
int v = e[i].to;
if(v == fa)continue ;
if(!dfn[v])
{
Dfs(v , u);
if(mx[u] + mx[v] + 1 > 3)chain = 1;
mx[u] = max(mx[u] , mx[v] + 1);
low[u] = min(low[u] , low[v]);
if(dfn[u] < low[v])
bridge[i] = bridge[i ^ 1] = 1;
}
else
{
low[u] = min(low[u] , dfn[v]);
int len = dep[u] - dep[v] + 1;
if(len & 1)odd = 1;
else even = 1;
}
}
}
void Dfs2(int u)
{
col[u] = cnt , sz[cnt]++;
for(int i = head[u] ; i ; i = e[i].nxt)
{
int v = e[i].to;
if(!bridge[i] && !col[v])Dfs2(v);
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0) , cout.tie(0);
cin >> n >> m;
for(int i = 1 ; i <= m ; i++)
{
int u , v; cin >> u >> v;
Add(u , v) , Add(v , u);
}
if(n <= 3)return cout << "-1\n" , 0;
if(m <= 2)return cout << 5 - m << "\n" , 0;
for(int i = 1 ; i <= n ; i++)
if(!dfn[i])Dfs(i , 0);
for(int i = 1 ; i <= n ; i++)
if(!col[i])cnt++ , Dfs2(i);
for(int i = 2 ; i <= tot ; i++)
{
int u = e[i ^ 1].to , v = e[i].to;
if(col[u] == col[v])deg[u]++ , deg[v]++;
}
for(int i = 1 ; i <= cnt ; i++)
{
if(sz[i] >= 3)
{
if(sz[i] & 1)odd = 1;
else even = 1;
}
}
for(int i = 1 ; i <= n ; i++)
if(sz[col[i]] > 3 && deg[i] > 2)even = 1;
if(odd && even)cout << "0\n";
else if(even)cout << "1\n";
else if(odd)cout << 2 - chain << "\n";
else cout << 3 - chain << "\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5668kb
input:
3 3 1 2 2 3 1 3
output:
-1
result:
ok "-1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
4 0
output:
5
result:
ok "5"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3708kb
input:
5 4 1 2 2 3 3 4 4 5
output:
2
result:
ok "2"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3716kb
input:
4 6 1 2 1 3 1 4 2 3 2 4 3 4
output:
0
result:
ok "0"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
4 4 1 2 2 3 3 4 4 1
output:
1
result:
ok "1"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
7 7 1 2 2 3 3 4 4 1 5 6 6 7 7 5
output:
0
result:
ok "0"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3652kb
input:
4 3 1 2 2 3 3 1
output:
2
result:
ok "2"
Test #8:
score: 0
Accepted
time: 17ms
memory: 8672kb
input:
100000 99999 13413 22698 22698 36667 13413 64418 36667 75207 36667 73542 75207 91445 64418 3222 36667 96990 73542 61771 96990 33073 22698 32560 33073 24210 33073 38905 75207 46243 75207 89600 89600 11756 36667 94609 89600 6427 3222 46213 11756 43560 46243 50875 36667 45066 24210 54458 36667 80150 22...
output:
2
result:
ok "2"
Test #9:
score: 0
Accepted
time: 17ms
memory: 9392kb
input:
100000 99999 77731 86926 77731 23800 86926 89529 23800 33493 86926 30923 23800 25737 23800 48382 25737 35288 48382 23623 35288 83350 35288 43718 89529 46770 30923 29 30923 73178 86926 8382 46770 75585 48382 67116 30923 20689 30923 97292 23800 82313 35288 85630 82313 74213 86926 48620 97292 86647 257...
output:
2
result:
ok "2"
Test #10:
score: 0
Accepted
time: 18ms
memory: 9632kb
input:
100000 99999 4582 99058 99058 87803 87803 5778 5778 21286 99058 64435 5778 25340 99058 84070 99058 92757 87803 48753 21286 71681 21286 50429 71681 22737 21286 48717 48717 81253 64435 23411 5778 30866 81253 76210 50429 16277 81253 16082 99058 32379 84070 95446 76210 40309 76210 35756 25340 71091 2273...
output:
2
result:
ok "2"
Test #11:
score: 0
Accepted
time: 14ms
memory: 9592kb
input:
100000 99999 34790 25024 25024 36551 34790 82646 82646 38938 25024 1562 34790 95790 1562 76262 76262 24681 38938 4943 95790 8669 95790 88401 4943 41293 38938 21530 41293 66721 34790 9066 25024 73316 76262 47595 25024 59910 66721 46517 82646 46936 21530 22361 9066 94253 1562 46296 94253 13074 59910 7...
output:
2
result:
ok "2"
Test #12:
score: 0
Accepted
time: 9ms
memory: 9412kb
input:
100000 99999 98079 73822 73822 63887 73822 71664 98079 65268 65268 72803 71664 77367 65268 85207 77367 39346 65268 55506 63887 49410 85207 35890 55506 51351 85207 87756 51351 47722 87756 31267 35890 91571 39346 9577 31267 31563 91571 59354 87756 27975 85207 59323 27975 34647 63887 52810 31267 83138 ...
output:
2
result:
ok "2"
Test #13:
score: 0
Accepted
time: 14ms
memory: 16852kb
input:
100000 100000 42276 12823 12823 87747 87747 59217 59217 2160 2160 85115 85115 75999 75999 74783 74783 84010 84010 20464 20464 41872 41872 31981 31981 2637 2637 97876 97876 70375 70375 63190 63190 65186 65186 42079 42079 60599 60599 76194 76194 30514 30514 69887 69887 87790 87790 88443 88443 63301 63...
output:
1
result:
ok "1"
Test #14:
score: 0
Accepted
time: 15ms
memory: 9140kb
input:
100000 99839 3777 83777 92737 22487 3405 34804 3405 63348 71869 16450 25024 77034 45886 70138 46420 99380 71372 15729 62782 59134 62782 17644 40931 60627 41776 72468 26424 19072 26424 62020 82982 49540 57857 19904 13263 65383 30740 28382 30740 59687 76880 49124 88187 10493 56456 27193 56456 95532 76...
output:
0
result:
ok "0"
Test #15:
score: 0
Accepted
time: 16ms
memory: 10204kb
input:
100000 99846 66429 19818 1142 65323 89629 2650 89629 42870 60529 13997 20679 78690 20679 5269 8110 28183 34782 58319 26797 17740 21871 93617 83053 29948 14688 55200 52483 73309 56841 6633 56841 55711 95177 89002 57442 17594 16875 7796 16875 8418 33959 24119 33959 33295 67593 42353 36122 96814 36122 ...
output:
1
result:
ok "1"
Test #16:
score: 0
Accepted
time: 19ms
memory: 9892kb
input:
100000 99840 61287 64073 89052 6689 89052 74027 83146 40301 55950 89689 89833 57298 89833 42280 19736 77515 19736 50538 31174 39104 14153 51424 14153 31424 56843 90058 46315 9861 81108 51034 47276 31883 47276 13174 25797 42555 18853 97994 67050 80142 7186 30565 45598 65037 72065 47586 72065 52587 44...
output:
0
result:
ok "0"
Test #17:
score: 0
Accepted
time: 11ms
memory: 9192kb
input:
100000 99837 52632 49066 8207 69824 92267 29339 87828 81159 86585 34918 5072 88375 5072 46372 4237 72777 4237 66222 32455 3061 17684 42281 41275 34536 72839 74066 45095 66825 45095 188 31633 52839 14240 7205 14240 62813 37523 40559 37523 22436 95403 86964 95403 75 24404 73 54534 32797 46562 88745 70...
output:
0
result:
ok "0"
Test #18:
score: 0
Accepted
time: 34ms
memory: 14584kb
input:
100000 200000 91756 69297 91756 4545 91756 53749 91756 54529 91756 72391 91756 1260 91756 94514 69297 56396 69297 94148 69297 44667 69297 73169 69297 81731 19501 62537 19501 96669 19501 78118 19501 59314 19501 21054 19501 96372 19501 39387 19501 50363 19501 80139 19501 8413 34623 10037 34623 20572 1...
output:
0
result:
ok "0"
Test #19:
score: -100
Wrong Answer
time: 33ms
memory: 14580kb
input:
100000 199999 94566 78687 94566 29032 94566 67782 94566 6508 22336 61573 22336 97677 22336 16991 22336 37766 22336 58704 22336 6768 22336 60250 22336 33412 22336 11114 56860 62498 56860 75679 56860 66179 56860 8667 56860 29468 27072 73747 27072 41786 58625 45299 58625 63322 58625 47995 58625 92457 5...
output:
0
result:
wrong answer 1st words differ - expected: '1', found: '0'