Das Problem zu finden, wie viele Personen auf einem runden Tisch sitzen können (Anzahl der Tische n). Wenn sich auch nur eine Person in einer Gruppe nicht setzen kann, kehrt die Gruppe zurück.
Der Eingang besteht aus m + 1 Zeilen. In der ersten Zeile werden n (Anzahl der Sitzplätze) und m (Anzahl der Gruppen) getrennt durch Leerzeichen halber Breite eingegeben. In der Zeile i + 1 (1 ≤ i ≤ m) werden zwei Ganzzahlen a_i (Anzahl der Personen in der Gruppe) und b_i (Anzahl der Sitzstartsitzplätze) getrennt durch ein Leerzeichen halber Breite eingegeben.
Bedingungen In allen Testfällen erfüllen die eingegebenen Werte folgende Bedingungen: 1≦n≦100 1≦m≦100 1≦a_i≦n 1≦b_i≦n
(1) Tabellennummer
Wenn k Personen in einer Gruppe i sind und sie vom b_i-Tisch sitzen Diese Gruppe
b_i,...,b_(i+k-1)
Es soll bis zum Tisch sitzen.
Zum Beispiel, wenn die Anzahl der Tabellen 6 ist und (a_i, b_i) = (4,5) oben Beachten Sie, dass die Tischnummer, auf der Sie sitzen möchten, (5,6,1,2) anstelle von (5,6,7,8) lautet. Hier habe ich beschlossen zu denken, dass alle Tabellennummern __b_j% n sind (der Rest von b_j geteilt durch n) __.
(2) Ob eine Gruppe sitzt oder nicht: Bestimmt durch die check_arr-Funktion
Sitztischlayout: ar_table Ein Array von Tabellennummern, auf denen eine Gruppe sitzen soll (Erstellt mit der Funktion make_tblarr): ar_chk Wenn ar_table auch nur ein Element von ar_chk enthält, wird beurteilt, dass es nicht sitzen kann.
(3) Anzeige der Anzahl der Personen, die
sitzen
Die Gruppe, die entschlossen ist, oben sitzen zu können, fügt diese Tischnummern zur Anordnung der sitzenden Tische hinzu. Schließlich wird die Größe des Sitztischarrays angezeigt.
Der Betrieb wurde bestätigt.
# coding: utf-8
# Your code here!
in1=input()
arr1=in1.split()
n1=int(arr1[0])
n2=int(arr1[1])
in2=[]
for i in range(n2):
tmp=input()
in2.append(tmp)
#print(in2)
def make_tblarr(in2,nmax):
arr3=[]
arr2=in2.split()
nn=int(arr2[0])
st=int(arr2[1])
for i in range(nn):
arr3.append((st+i)%nmax)
return arr3
#ar_table:Anordnung der Sitztischnummern
#ar_chk:Reihenfolge überprüft werden
#ar_Ar auf dem Tisch_0, wenn nicht alle Elemente von chk enthalten sind, 1, wenn eingeschlossene Elemente gefunden werden
def check_arr(ar_table,ar_chk):
flg=0
for i in range(len(ar_chk)):
#Das zu prüfende Array-Element ist bereits ar_Wenn in der Tabelle enthalten
if ar_table.count(ar_chk[i])>0:
#setze flg auf 1
flg=1
break
return flg
retar=[]
for i in range(n2):
ar3=make_tblarr(in2[i],n1)
#print(ar3)
if check_arr(retar,ar3)== 0:
for j in range(len(ar3)):
retar.append(ar3[j])
print(len(retar))
Recommended Posts