Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. #  author: ThePonyCoder
  2. #  created: 01.07.2019, 12:41
  3. #  filename: 1_1.py
  4. #  path: F:/Projects/CodeForces/resp_2019/1_1.py
  5.  
  6. import os
  7. import sys
  8. import itertools
  9. from math import factorial
  10.  
  11. sys.stdin = open('input.txt', 'r')
  12. sys.stdout = open('output.txt', 'w')
  13.  
  14.  
  15. def rI():
  16.     return [int(i) for i in input().split()]
  17.  
  18.  
  19. def print(*args, sep=' ', end='\n'):
  20.     s = ''
  21.     for i in args:
  22.         s += str(i) + sep
  23.     s += end
  24.     sys.stdout.write(s)
  25.  
  26. def main(n):
  27.     ans1 = []
  28.     ans2 = []
  29.     if n % 2 == 0:
  30.         ans1.append(n // 2)
  31.         for i in range(n, 0, -1):
  32.             if i == n // 2:
  33.                 continue
  34.             ans1.append(i)
  35.         # print()
  36.         ans2.append(n // 2 + 1)
  37.         for i in range(1, n + 1):
  38.             if i == n // 2 + 1:
  39.                 continue
  40.             ans2.append(i)
  41.     else:
  42.         ans1.append(n // 2 + 1)
  43.         ans1.append(n // 2)
  44.         for i in range(n, 0, -1):
  45.             if i == n // 2 or i == n // 2 + 1:
  46.                 continue
  47.             ans1.append(i)
  48.         # print()
  49.         ans2.append(n // 2 + 1)
  50.         ans2.append(n // 2 + 2)
  51.         for i in range(1, n + 1):
  52.             if i == n // 2 + 1 or i == n // 2 + 2:
  53.                 continue
  54.             ans2.append(i)
  55.     return ans1, ans2
  56.  
  57.  
  58. # print(itertools.permutations(list(range(1, 10)))
  59.  
  60. n = rI()[0]
  61. ans1,ans2 = main(n)
  62. print(*ans1)
  63. print(*ans2)
  64.  
  65. def brut(n):
  66.     perms = itertools.permutations(list(range(1, n + 1)))
  67.     pos1 = factorial(n) // 2 - 1
  68.     pos2 = pos1 + 1
  69.     ans1 = None
  70.     ans2 = None
  71.     for idx,it in enumerate(perms):
  72.         if idx == pos1:
  73.             ans1 = it
  74.         if idx == pos2:
  75.             return ans1, it
  76.     # return perms[pos1], perms[pos2]
  77.     # print(*perms[pos1], sep=' ')
  78.     # print(*perms[pos2], sep=' ')
  79.  
  80.  
  81. # brut(3)
  82.  
  83.  
  84. def test_main():
  85.     for i in range(2, 20):
  86.         print(i)
  87.         assert brut(i) == main(i), (brut(i), main(i))
  88. # test_main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement