import sys
def main():
lines = sys.stdin.read().splitlines()
n, k = map(int, lines[0].split(" "))
a = list(map(int, lines[1].strip().split(" ")))
minl = [0] * n
maxr = [0] * n
minl[0] = a[0]
maxr[n - 1] = a[n - 1]
for i in range(1, n):
minl[i] = min(minl[i - 1], a[i])
maxr[n - i - 1] = max(maxr[n - i], a[n - i])
if k == 2:
for i in range(1, n):
if minl[i - 1] >= maxr[i]:
print("TAK")
print(i)
return
elif k == 3:
for i in range(1, n - 1):
if a[i] <= minl[i - 1] or a[i] >= maxr[i + 1]:
print("TAK")
print(i, i + 1)
return
else:
for i in range(1, n - 2):
if a[i + 1] <= a[i]:
l = range(1, min(k - 4, i - 1) + 1)
r = range(i + 3, i + 3 + (k - 4 - len(l)))
print("TAK",i+1,i+2)
print(*l, i, i + 1, i + 2, *r)
return
print("NIE")
if __name__ == "__main__":
main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import sys def main(): lines = sys.stdin.read().splitlines() n, k = map(int, lines[0].split(" ")) a = list(map(int, lines[1].strip().split(" "))) minl = [0] * n maxr = [0] * n minl[0] = a[0] maxr[n - 1] = a[n - 1] for i in range(1, n): minl[i] = min(minl[i - 1], a[i]) maxr[n - i - 1] = max(maxr[n - i], a[n - i]) if k == 2: for i in range(1, n): if minl[i - 1] >= maxr[i]: print("TAK") print(i) return elif k == 3: for i in range(1, n - 1): if a[i] <= minl[i - 1] or a[i] >= maxr[i + 1]: print("TAK") print(i, i + 1) return else: for i in range(1, n - 2): if a[i + 1] <= a[i]: l = range(1, min(k - 4, i - 1) + 1) r = range(i + 3, i + 3 + (k - 4 - len(l))) print("TAK",i+1,i+2) print(*l, i, i + 1, i + 2, *r) return print("NIE") if __name__ == "__main__": main() |
English