# 入力
L1, R1, L2, R2 = map(int, input().split())
# ちょっと眺めの数直線を用意して
L = [0] * 110
# L1からR1までを塗り塗り…
for i in range(L1, R1):
L[i] += 1
# L2からR2までを塗り塗り…
for i in range(L2, R2):
L[i] += 1
# 2回塗られてる部分の数を求めたら、ハイ終わり!
print(L.count(2))
# 入力
L1, R1, L2, R2 = map(int, input().split())
# スワップ部分
# ここで、L1<=L1が保証される
if L1 > L2:
L1, R1, L2, R2 = L2, R2, L1, R1
# R1>L2じゃないと公差しないからね
if R1 <= L2:
print(0)
# 普通に公差してる場合
elif R1 <= R2:
print(R1 - L2)
# 内包されてる形の場合
else:
print(R2 - L2)
W
の時、人が人に勝ったL
の時、人が人に負けたD
の時、人が人に引き分けた-
の時、-
であるW
,L
,D
のいずれかである# 入力
N = int(input())
L = []
for i in range(N):
L.append(input())
# 表に矛盾が無いかどうかを示すフラグ
ans_flg = True
# iとjを全探索して…
for i in range(N):
for j in range(i + 1, N):
# 其々の場合で矛盾となる状態を抽出
# もし矛盾があった場合、フラグで管理
if L[i][j] == 'W' and L[j][i] != 'L':
ans_flg = False
if L[i][j] == 'L' and L[j][i] != 'W':
ans_flg = False
if L[i][j] == 'D' and L[j][i] != 'D':
ans_flg = False
# 矛盾が合ったかどうかで判定出力!おわり!
if ans_flg:
print('correct')
else:
print('incorrect')
from collections import defaultdict
# 入力
N = int(input())
# カウント用defaultdict準備
d = defaultdict(int)
for i in range(N):
# Sを受け取って…
S = input()
# もしSが過去に出てきたなら、"()"を付けて個数も出力!
if d[S]:
print(S + '(' + str(d[S]) + ')')
else:
# Sが初めて出てきたなら、そのまま出力!
print(S)
# Sの個数に+1
d[S] += 1
# 入力
N, M = map(int, input().split())
X_L = [0] + list(map(int, input().split()))
# bonus_L[i] : カウンタがiになったときのボーナス
bonus_L = [0] * (N + 10)
for i in range(M):
C, Y = map(int, input().split())
bonus_L[C] = Y
# dp配列準備!余裕みて+10で作ってみたりすると何かプロっぽい感じして良き。list index out of range出ないのも良き。
# dp[i][j] := i回コイントスをして、カウンターの値が[j]になるときの、最大金額!
# とりあえず「その状況があり得る?」かを判定するかなと思って、ありえない値として-1を突っ込んだけど、0でいいね…?
dp = [[-1] * (N + 10) for i in range(N + 10)]
# 0回コイントスをしました!カウンタ0です!その時にありえる最大金額は0円です!当たり前体操!
dp[0][0] = 0
# 直前のコイントスで、得られる最大金額を確保しておく
# → 次のコイントスで「裏」を出した時の金額になるよ!
max_score = 0
# コイントスした回数。1回トスするよ。N回までトスするよ。
for toss in range(1, N + 1):
# toss回目のトスで裏を出す=カウンタ0にする時の最大金額は、直前までのコイントスで得た最大金額
dp[toss][0] = max_score
# カウンターの値を考える。toss回目で、カウンターがcnt回になったときの最大金額
for cnt in range(1, toss + 1):
# toss-1回目、カウンタ=cnt-1の最大金額 + toss回目のX + カウンタボーナス!
dp[toss][cnt] = dp[toss - 1][cnt - 1] + X_L[toss] + bonus_L[cnt]
# toss回目の最大値 → 次のカウンタ0で裏を出した時に使うよ!
max_score = max(dp[toss])
# 最後のトスが終わったときの最大金額が答え!
print(max_score)
# 入力
N, C = map(int, input().split())
# 何故かXで与えてくれなかったので、X作成
X = C
# bit毎の直前の操作までを記録する配列。
# bit_L[i][j] := i桁目のbitを、j(0 or 1)から操作初めたらどうなったよ!な配列 (0 or 1)
bit_L = [[0, 1] for _ in range(30)]
for _ in range(N):
# N回入力受け取って…
T, A = map(int, input().split())
# 1桁ずつ見ていくよ!
for i in range(30):
# and操作の時!
if T == 1:
# もしAのi桁目のbitが立ってるなら、i桁目は何も変わらない
if (A >> i) & 1:
pass
# 立ってないなら、0から始めても1から始めても0になる
else:
bit_L[i][0] = 0
bit_L[i][1] = 0
# or操作の時!
elif T == 2:
# もしAのi桁目のbitが立ってるなら、0から始めても1から始めてもi桁目は1になる
if (A >> i) & 1:
bit_L[i][0] = 1
bit_L[i][1] = 1
# 立ってないなら、i桁目は何も変わらない
else:
pass
# xor操作の時!
else:
# もしAのi桁目のbitが立ってるなら、直前で0なら1に、1なら0になる
if (A >> i) & 1:
bit_L[i][0] ^= 1
bit_L[i][1] ^= 1
# 立ってないなら、i桁目は何も変わらない
else:
pass
# 出力する値を計算するパート!
output = 0
# 1桁ずつ見ていくよ!
for i in range(30):
# もしXのi桁目のbitが立ってるなら…
if (X >> i) & 1:
# i桁目のbitで、1から初めたら直前までの操作を行った時,bitは立ってる?
# 立ってるなら、2^i乗をインクリメント
if bit_L[i][1]:
output += 2 ** i
# もしXのi桁目のbitが立ってないなら…
else:
# i桁目のbitで、0から初めたら直前までの操作を行った時,bitは立ってる?
# 立ってるなら、2^i乗をインクリメント
if bit_L[i][0]:
output += 2 ** i
# 出力!Xの更新も忘れずに!
print(output)
X = output