Problem Müəllifi: | Hasan Saleh (MathModel) |
Hazırlayan: | Hasan Saleh (MathModel) |
Redaktə edən: | Hasan Saleh (MathModel) |
Həll
Bizə \{1,2,\dots,n\} dəstinin bir permutasiya verilir və biz
Tələb olunan şərt
yəni, cüt indekslər lokal maksimumlar, tək indekslər isə lokal minimumlardır.
Bir-birini birbaşa müqayisə etmək əvəzinə, daha güclü bir invariant tətbiq edirik:
hər cüt indeks üçün,
hər tək indeks i\ge3 üçün,
Əgər bu şərtlər yerinə yetirilirsə, zig-zag şərti avtomatik olaraq təmin edilir.
Beləliklə, yalnız bu qeyri-bərabərlikləri təmin edən bir permutasiya lazımdır.
Konstruksiya
beləliklə
hər cüt indeks i<n üçün,
hər tək indeks i\ge3 üçün,
əgər cütdürsə,
Bu, birbaşa
verir (əgər cütdürsə, sonunda).
Bütün n\ge1 üçün etibarlı bir konstruksiya mövcuddur, beləliklə, biz heç vaxt çıxarmırıq.
Komplekslik .
for _ in range(int(input())):
n=int(input())
p=[0]*n
for i in range(n):p[i]=i+1
for i in range(1,n-1,2):
p[i],p[i+1]=p[i+1],p[i]
a=[p[i]/(i+1) for i in range(n)]
for i in range(1,n-1):
if(i%2==0):
assert(a[i-1]>a[i] and a[i]<a[i+1])
else:
assert(a[i-1]<a[i] and a[i]>a[i+1])
print(*p)