605B - Lazy Student - CodeForces Solution


constructive algorithms data structures graphs *1700

Please click on ads to support us..

Python Code:


n,m=map(int,input().split())
inc=[0]*m
edges=[]
for i in range(m):
    a,b=map(int,input().split())
    inc[i]=b
    edges.append((a,b,i))
edges.sort(key=lambda x:(x[0],-x[1]))
ans=[[] for _ in range(m)]
last=1
fro=2
to=3
f=True
for a,b,ind in edges:
    if inc[ind]:
        last+=1
        ans[ind]=[1,last]
    else:
        if to==fro:
            to+=1
            fro=2
        if to>last:
            f=False
            break
        ans[ind]=[fro,to]
        fro+=1
if f:
    for el in ans:
        print(*el)
else:
    print(-1)


Comments

Submit
0 Comments
More Questions

1358D - The Best Vacation
1620B - Triangles on a Rectangle
999C - Alphabetic Removals
1634C - OKEA
1368C - Even Picture
1505F - Math
1473A - Replacing Elements
959A - Mahmoud and Ehab and the even-odd game
78B - Easter Eggs
1455B - Jumps
1225C - p-binary
1525D - Armchairs
1257A - Two Rival Students
1415A - Prison Break
1271A - Suits
259B - Little Elephant and Magic Square
1389A - LCM Problem
778A - String Game
1382A - Common Subsequence
1512D - Corrupted Array
667B - Coat of Anticubism
284B - Cows and Poker Game
1666D - Deletive Editing
1433D - Districts Connection
2B - The least round way
1324A - Yet Another Tetris Problem
246B - Increase and Decrease
22E - Scheme
1566A - Median Maximization
1278A - Shuffle Hashing