長テーブルのうなぎ屋 (paizaランク B 相当)
解けてないんだけど、保存で。
''' 1行目にはn(座席数)とm(グループ数)が半角スペース区切りで入力されます。 i+1行目(1≦i≦m)には2個の整数a_i(グループの人数)とb_i(着席開始座席番号)が半角スペース区切りで入力されます。 ''' a = input().split( ) seet_num = int(a[0]) group_num = int(a[1]) seet = [] for i in range(seet_num): seet.append("") data=[] for i in range(group_num): [c,d] = input().split( ) data.append([int(c) , int(d)]) count = 0 print(data) #指定範囲を考える for i in range(group_num): print(seet) cut = [] start = data[i][1] - 1 #この番号のリストから調べ始めます end = data[i][0] + data[i][1] if end <= seet_num -1 : for j in range(start, end): cut.append(seet[j]) print("cut is ",end="") print(cut) if "#" not in cut: count += data[i][0] for j in range(start, end): seet[j] = "#" else : end = end - seet_num for k in range(start , seet_num): cut.append(seet[k]) for l in range(0 , end): cut.append(seet[l]) if "#" not in cut: count += data[i][0] for m in range(start , seet_num): seet[j] = "#" for n in range(0 , end): seet[k] = "#" print(seet) print(count)