XOR演算
・入力は "0" あるいは "1" からなる長さ N の文字列です。 ・まず、入力を左から順に長さ M のブロックに分割します。最後のブロックには長さが M となるよう "0" を適当な数追加します。 ・これらのブロックに左から順に XOR を適用します。ブロック間の XOR は、左から 1 文字ずつ XOR 適用するものとします。 ・出力として、長さ M の文字列が得られます。
keta, bl = map(int, input().split())
dat = input()
i = 0
#今ある文字列が何ブロックか
b_suu = 0
if len(dat)%bl == 0:
b_suu = len(dat)//bl
else:
b_suu = len(dat)//bl +1
#必要なブロック数
while True:
i += 1
if b_suu < 2**i:
b_suu= 2**i
b_suu= b_suu * bl
break
for j in range(len(dat),b_suu):
dat += "0"
def calc(dat):
temp=""
for i in range(0,len(dat),bl*2):
for j in range(bl):
if dat[i+j] == dat[i+j+bl]:
temp += "0"
else:
temp += "1"
return temp
while len(dat) > bl:
dat = calc(dat)
print(dat)
リーグ表の作成
suu =[] shiaisuu = 0 for i in range(2,21):
shiaisuu = shiaisuu + i -1 suu.append(shiaisuu)
team = int(input())
tbl = [["-" for i in range(team)] for j in range(team)]
shiaisuu = suu[team-2]
for i in range(shiaisuu):
W, L = map(int, input().split()) tbl[W-1][L-1] = "W" tbl[L-1][W-1] = "L"
for i in range(team):
ans = ""
for j in range(team):
ans += tbl[i][j] + " "
print(ans.rstrip())