108222024-04-15 23:19:4542Vasútépítéspython3Runtime error 0/100310ms93972 KiB
from sys import stdin,stdout
input=stdin.readline

def main():
    N,M = list(map(int, input().split()))
    if M>N:
        print(-1)
        return
    graph={}
    for i in range(M):
        u,v = list(map(int, input().split()))
        try: graph[u].add(v)
        except: graph[u]={v}
        try: graph[v].add(u)
        except: graph[v]={u}
    if len(graph)<N:
        print(-1)
        return
    deg={}
    for key in graph:
        try: deg[len(graph[key])].add(key)
        except: deg[len(graph[key])]={key}
    #print(deg)
    #print(graph)
    # deg1 -> 1...1000
    # deg2 -> 1001...2000
    deg1,deg2=2000,1000
    inf=10**7
    matrix=[list(range(inf-i*1001-N-1,inf-i*1001)) for i in range(0,N+1)]
    #print(matrix)
    while deg[1]:
        v=deg[1].pop()
        u=graph.pop(v).pop()
        #print(v,u)
        matrix[u][v]=deg1
        matrix[v][u]=deg1
        deg1-=1
        if u in deg[1]:
            deg[1].remove(u)
            graph.pop(u)
        else:
            graph[u].remove(v)
            deg[len(graph[u])].add(u)
            if len(deg[len(graph[u])+1])==1:
                deg.pop(len(graph[u])+1)
            else:
                deg[len(graph[u])+1].remove(u)
            if len(graph[u])==1:
                deg[1].add(u)
    if 1 in deg:
        deg.pop(1)
    if len(deg)>1 or 2 not in deg:
        print(-1)
        return
    #print(deg)
    #print(graph)
    while deg[2]:
        v=deg[2].pop()
        cur=[v]
        while cur[-1] in graph:
            szomsz=graph.pop(cur[-1])
            for u in szomsz:
                if u in deg[2]:
                    deg[2].remove(u)
                    cur.append(u)
                    break
        #print(cur)
        for i in range(len(cur)):
            u=cur[i]
            v=cur[i-1]
            matrix[u][v]=deg2
            matrix[v][u]=deg2
            deg2-=1
                
    #print(N,len(matrix),len(matrix[0]))
    for i in range(1,N):
        #print(*matrix[i][i+1:])
        for j in range(i+1,N+1):
            stdout.write(str(matrix[i][j])+' ')
        stdout.write('\n')
main()
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted18ms11776 KiB
2Accepted18ms11812 KiB
3Accepted21ms13272 KiB
subtask20/40
4Runtime error83ms92092 KiB
5Wrong answer76ms92736 KiB
6Wrong answer76ms92740 KiB
7Wrong answer76ms92964 KiB
8Runtime error83ms92960 KiB
9Runtime error98ms93148 KiB
10Runtime error86ms93408 KiB
11Wrong answer17ms13760 KiB
subtask30/60
12Runtime error83ms92092 KiB
13Wrong answer76ms92736 KiB
14Wrong answer76ms92740 KiB
15Wrong answer76ms92964 KiB
16Runtime error83ms92960 KiB
17Runtime error98ms93148 KiB
18Runtime error86ms93408 KiB
19Wrong answer17ms13760 KiB
20Accepted296ms93372 KiB
21Runtime error82ms93532 KiB
22Accepted310ms93548 KiB
23Runtime error85ms93580 KiB
24Accepted296ms93724 KiB
25Accepted310ms93848 KiB
26Accepted300ms93744 KiB
27Runtime error83ms93972 KiB
28Accepted17ms14188 KiB
29Accepted19ms14888 KiB
30Accepted17ms14060 KiB
31Accepted86ms93736 KiB