193552025-12-05 07:23:05birozsIntervallumok (45 pont)pypy3Accepted 45/45441ms68100 KiB
N = int(input())
pont = list(map(int,input().split()))
Blokk = []
for K in range(1,N):
    if K == 1:
        Blokk.append([[K,pont[-1]-pont[0]],[pont[0]]])
    if K > 1 and N % K == 0:
        if K == 2:
            koz = max([pont[N//2-1]-pont[0],pont[N-1]-pont[N//2]])
            Blokk.append([[2,koz],[pont[N//2-1]-koz,pont[N//2]]])
        else:
            Intervallumok = []
            hossz = N // K
            MaxHossz = 0
            for i in range(N):
                if i % hossz == hossz - 1:
                    Intervallumok.append([i-hossz+1,i])
                    if pont[i] - pont[i-hossz+1] > MaxHossz:
                        MaxHossz = pont[i] - pont[i-hossz+1]
            Szep = []
            Lehet = True
            AktPoz = - 3 * 10**8
            for bal,jobb in Intervallumok:
                if pont[jobb] - AktPoz >= MaxHossz:
                    Szep.append([pont[jobb]-MaxHossz,pont[jobb]])
                    AktPoz = pont[jobb] + 1
                elif jobb < N - 1 and pont[jobb+1] - 1 - AktPoz >= MaxHossz:
                    Szep.append([AktPoz,AktPoz + MaxHossz])
                    AktPoz = AktPoz + MaxHossz + 1
                elif jobb == N - 1 and pont[jobb] - AktPoz < MaxHossz:
                    Szep.append([AktPoz,AktPoz + MaxHossz])
                else:
                    Lehet = False
                    break
            if Lehet:
                sor = []
                for bal,jobb in Szep:
                    sor.append(bal)
                Blokk.append([[K,MaxHossz],sor])
print(len(Blokk))
for k in Blokk:
    print(k[0][0],k[0][1])
    for x in k[1]:
        print(x)
            
SubtaskSumTestVerdictTimeMemory
base45/45
1Accepted0/039ms19676 KiB
2Accepted0/061ms21448 KiB
3Accepted1/139ms19588 KiB
4Accepted1/143ms19868 KiB
5Accepted1/156ms21432 KiB
6Accepted1/161ms22180 KiB
7Accepted1/1167ms37864 KiB
8Accepted2/264ms22064 KiB
9Accepted2/2194ms38532 KiB
10Accepted2/2186ms38192 KiB
11Accepted2/2210ms39124 KiB
12Accepted2/2200ms38448 KiB
13Accepted2/2199ms39216 KiB
14Accepted2/279ms23016 KiB
15Accepted2/293ms23924 KiB
16Accepted2/297ms25064 KiB
17Accepted2/2120ms26088 KiB
18Accepted2/2127ms25964 KiB
19Accepted2/2370ms49912 KiB
20Accepted2/2416ms67840 KiB
21Accepted2/2435ms66808 KiB
22Accepted2/2441ms66044 KiB
23Accepted2/2430ms68100 KiB
24Accepted2/2214ms29128 KiB
25Accepted2/2307ms47812 KiB
26Accepted2/2289ms48836 KiB
27Accepted2/2310ms35124 KiB