AtCoder Beginner Contest 207 C - Many Segments【Python】
https://atcoder.jp/contests/abc207/tasks/abc207_c
AtCoder ProblemsのRecommendationで Difficulty: 397、Solve Probability: 48%でした。
なんとか解けましたが0.5を加減するところを1にしてしまい少しつまりました。
また、ソートを使いましたが公式解説によればmax(a, c) <= min(b, d)とすれば良いためその必要はなかったようです。
https://atcoder.jp/contests/abc207/editorial/2152
N = int(input()) LR = [] for i in range(N): t, l, r = map(int, input().split()) # 0.5を加減してtによらず判定できるようにする if t == 1: pass elif t == 2: r -= 0.5 elif t == 3: l += 0.5 elif t == 4: l += 0.5 r -= 0.5 LR.append([l, r]) LR = sorted(LR) ans = 0 for i in range(N): for j in range(i+1, N): il, ir = LR[i] jl, jr = LR[j] if il <= jl <= ir: ans += 1 print(ans)