Submission #6354124
Source Code Expand
import sys
input = sys.stdin.readline
from collections import defaultdict
# 切り離す必要があるものを辺として、二部グラフの判定
N,M = map(int,input().split())
# 補グラフ
rng = range(1,N+1)
graph = [None] + [set(x for x in rng if x != y) for y in rng]
for _ in range(M):
a,b = map(int,input().split())
graph[a].remove(b)
graph[b].remove(a)
color = [None] * (1+N)
size = defaultdict(lambda: [0,0])
def set_color(root,x,c):
size[root][c] += 1
color[x] = c
for y in graph[x]:
if color[y] is None:
set_color(root,y,1-c)
elif color[y] == color[x]:
print(-1)
exit()
for x in rng:
if color[x] is None:
set_color(x,x,0)
# 二部グラフになるべく平均的に分けたい
# 可能なサイズの集合を持つ
se = {0}
for x,y in size.values():
se = set(s + x for s in se) | set(s + y for s in se)
answer = min(x*(x-1)//2+(N-x)*(N-x-1)//2 for x in se)
print(answer)
Submission Info
| Submission Time | |
|---|---|
| Task | E - Independence |
| User | maspy |
| Language | Python (3.4.3) |
| Score | 700 |
| Code Size | 1030 Byte |
| Status | AC |
| Exec Time | 507 ms |
| Memory | 35948 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 700 / 700 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample1.txt, sample2.txt, sample3.txt, sample4.txt |
| All | sample1.txt, sample2.txt, sample3.txt, sample4.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 1.txt | AC | 32 ms | 4332 KiB |
| 10.txt | AC | 28 ms | 4204 KiB |
| 11.txt | AC | 457 ms | 35820 KiB |
| 12.txt | AC | 454 ms | 35564 KiB |
| 13.txt | AC | 410 ms | 34156 KiB |
| 14.txt | AC | 387 ms | 34796 KiB |
| 15.txt | AC | 434 ms | 35692 KiB |
| 16.txt | AC | 401 ms | 34156 KiB |
| 17.txt | AC | 440 ms | 34924 KiB |
| 18.txt | AC | 87 ms | 6252 KiB |
| 19.txt | AC | 506 ms | 35948 KiB |
| 2.txt | AC | 91 ms | 6252 KiB |
| 20.txt | AC | 454 ms | 35692 KiB |
| 21.txt | AC | 442 ms | 34412 KiB |
| 22.txt | AC | 448 ms | 34924 KiB |
| 23.txt | AC | 507 ms | 35944 KiB |
| 24.txt | AC | 306 ms | 25964 KiB |
| 25.txt | AC | 95 ms | 35692 KiB |
| 26.txt | AC | 20 ms | 3316 KiB |
| 27.txt | AC | 20 ms | 3316 KiB |
| 28.txt | AC | 20 ms | 3316 KiB |
| 29.txt | AC | 20 ms | 3316 KiB |
| 3.txt | AC | 426 ms | 35692 KiB |
| 4.txt | AC | 446 ms | 35564 KiB |
| 5.txt | AC | 419 ms | 34156 KiB |
| 6.txt | AC | 434 ms | 34796 KiB |
| 7.txt | AC | 460 ms | 35820 KiB |
| 8.txt | AC | 29 ms | 4204 KiB |
| 9.txt | AC | 83 ms | 6252 KiB |
| sample1.txt | AC | 20 ms | 3316 KiB |
| sample2.txt | AC | 20 ms | 3316 KiB |
| sample3.txt | AC | 20 ms | 3316 KiB |
| sample4.txt | AC | 20 ms | 3316 KiB |