Le problème de savoir combien de personnes peuvent s'asseoir sur une table circulaire (nombre de tables n). Si même une personne dans un groupe ne peut pas siéger, le groupe reviendra.
L'entrée se compose de m + 1 lignes. Dans la première ligne, n (nombre de sièges) et m (nombre de groupes) sont entrés séparés par des espaces demi-largeur. Dans la ligne i + 1 (1 ≤ i ≤ m), deux entiers a_i (nombre de personnes dans le groupe) et b_i (numéro de siège de départ) sont entrés séparés par un espace demi-largeur.
conditions Dans tous les cas de test, les valeurs saisies remplissent les conditions suivantes: 1≦n≦100 1≦m≦100 1≦a_i≦n 1≦b_i≦n
(1) Numéro de table
Quand il y a k personnes dans un groupe i et qu'elles s'assoient de la table b_i Ce groupe
b_i,...,b_(i+k-1)
Il est censé s'asseoir à table jusqu'à.
Par exemple, si le nombre de tables est 6 et (a_i, b_i) = (4,5) ci-dessus Notez que le numéro de table sur lequel vous prévoyez de vous asseoir sera (5,6,1,2) au lieu de (5,6,7,8). Ici, j'ai décidé de penser que tous les numéros de table sont __b_j% n (le reste de b_j divisé par n) __.
(2) Si un groupe siège ou non: Déterminé par la fonction check_arr
Disposition de la table assise: ar_table Un tableau de numéros de table sur lesquels un groupe est censé s'asseoir (Créé avec la fonction make_tblarr): ar_chk Si ar_table contient ne serait-ce qu'un élément de ar_chk, il est jugé qu'il ne peut pas siéger.
(3) Affichage du nombre de personnes assises
Le groupe déterminé à pouvoir s'asseoir dans ce qui précède ajoute ces numéros de table à la disposition des tables assises. Enfin, la taille du réseau de tables de sièges s'affiche.
L'opération a été confirmée.
# 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:Disposition des numéros de table assise
#ar_chk:Séquence à vérifier
#ar_Ar sur table_0 lorsque tous les éléments de chk ne sont pas inclus, 1 lorsque les éléments inclus sont trouvés
def check_arr(ar_table,ar_chk):
flg=0
for i in range(len(ar_chk)):
#L'élément du tableau à vérifier est déjà ar_Si inclus dans le tableau
if ar_table.count(ar_chk[i])>0:
#mettre flg à 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