108222024-04-15 23:19:4542Vasútépítéspython3Futási hiba 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()
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva18ms11776 KiB
2Elfogadva18ms11812 KiB
3Elfogadva21ms13272 KiB
subtask20/40
4Futási hiba83ms92092 KiB
5Hibás válasz76ms92736 KiB
6Hibás válasz76ms92740 KiB
7Hibás válasz76ms92964 KiB
8Futási hiba83ms92960 KiB
9Futási hiba98ms93148 KiB
10Futási hiba86ms93408 KiB
11Hibás válasz17ms13760 KiB
subtask30/60
12Futási hiba83ms92092 KiB
13Hibás válasz76ms92736 KiB
14Hibás válasz76ms92740 KiB
15Hibás válasz76ms92964 KiB
16Futási hiba83ms92960 KiB
17Futási hiba98ms93148 KiB
18Futási hiba86ms93408 KiB
19Hibás válasz17ms13760 KiB
20Elfogadva296ms93372 KiB
21Futási hiba82ms93532 KiB
22Elfogadva310ms93548 KiB
23Futási hiba85ms93580 KiB
24Elfogadva296ms93724 KiB
25Elfogadva310ms93848 KiB
26Elfogadva300ms93744 KiB
27Futási hiba83ms93972 KiB
28Elfogadva17ms14188 KiB
29Elfogadva19ms14888 KiB
30Elfogadva17ms14060 KiB
31Elfogadva86ms93736 KiB