1994D - Funny Game - CodeForces Solution


constructive algorithms dsu graphs greedy math number theory trees

Please click on ads to support us..

Python Code:

t = int(input())



for _ in range(t):
    n = int(input())
    myset = set()
    input_string = input()
    parts = input_string.split()
    a = [int(part) for part in parts]
    for i in range(n):
        myset.add(i)
     

    ans = []



    for i in range(n-1,0,-1):
        dct = {}
        value = -1
        for j in myset:
            if (a[j]%i) in dct:
                ans.append((dct[a[j]%i] + 1, j +1))
                value = j
                break
            else:
                dct[a[j]%i] = j
        myset.remove(value)


    ans.reverse()

    print("YES")
    for item in ans:
        print(str(item[0]) + " " + str(item[1]))


Comments

Submit
0 Comments
More Questions

1702E - Split Into Two Sets
1703B - ICPC Balloons
1702F - Equate Multisets
1700A - Optimal Path
665C - Simple Strings
1708A - Difference Operations
1703E - Mirror Grid
1042A - Benches
1676B - Equal Candies
1705B - Mark the Dust Sweeper
1711A - Perfect Permutation
1701B - Permutation
1692A - Marathon
1066A - Vova and Train
169B - Replacing Digits
171D - Broken checker
380C - Sereja and Brackets
1281B - Azamon Web Services
1702A - Round Down the Price
1681C - Double Sort
12A - Super Agent
1709A - Three Doors
1680C - Binary String
1684B - Z mod X = C
1003A - Polycarp's Pockets
1691B - Shoe Shuffling
1706A - Another String Minimization Problem
1695B - Circle Game
1702B - Polycarp Writes a String from Memory
1701A - Grass Field