Responsive image Boda Szilárd weblapja

1. Csokikóstolás Egy reklámcég új csokoládé-választékot hirdet, és szeretne csokoládémintákat eljuttatni egy körben ülő n (10 ≤ n ≤ 10 000 000) gyermekhez.
A cég alkalmazottai rájönnek, hogy a minták minden gyermek számára történő kiosztása nagyon költséges lenne.
Következésképpen úgy döntenek, hogy a mintákat minden k (0 < k < n) gyermekre osztják szét az n-től, és megszámolják a gyermekeket k-nként. (amikor a szám eléri az utolsó gyermeket, akkor az az első gyermekével folytatódik és így tovább). A számlálás során minden gyermeket figyelembe veszünk, függetlenül attól, hogy csokoládét kaptak-e vagy sem. A csokiosztás leáll, amikor egy csokoládét egy olyan gyermeknek kellene adni, aki már megkapta.

Írjon egy függvényt, amely meghatározza azon gyermekek számát, akik nem kapnak csokoládémintát.
A bemeneti paraméterek az n és k természetes számok, s visszatéríti azon gyermekek számát (nr), akik nem kaptak csokoládét. 1. példa:


Bemenet
  • n=12
  • k=9



Kimenet
  • nr = 8 (1, 2, 4, 5, 7, 8, 10, 11 es gyerekek)

2. példa

Bemenet
  • n=15
  • k=7



Kimenet
  • nr = 0 (mindenki kap csokit)


Forrás: 2017, BBTE Informatika Felvételi, I/1


2. Egyszerűsítés
Adott két sorozat, a(n) és b(m) (1 ≤ n ≤ 10000 , 1 ≤ m ≤ 10000), amelyek természetes számokból állnak. Egy részsorozat alatt az egymásutáni elemeket értjük. Azt mondjuk, hogy az a sorozat redukálható b sorozatra, ha a b elemei felírhatóak az a bizonyos részsorozatainak összegeként. Írjon egy alprogramot, amely meghatározza, hogy a sorozat redukálható-e b sorozatra. Ha igen, akkor azonosítsa a b sorozatban lévő elemet (és ennek az elemnek a k indexét), amelyet a leghosszabb részsorozat összeadásával kapunk. Az alprogram bemeneti paramétereként megadjuk az a és b sorozatokat, valamint azok hosszát, (n és m), illetve a kimeneti paraméterekként red, k és nrMax, ahol:

Ha az a nem redukálható b re, akkor k és nrMax = -1. Ha több ugyanolyan hosszú leghosszabb sorozat van, akkor az elsőnek vesszük az indexét.

1. példa


Bemenet
  • n = 12
  • a = (6, 3, 4, 1, 6, 4, 6, 1, 7, 1, 8, 7)
  • m = 4
  • b = (13, 7, 18, 16)



Kimenet
  • red=igaz ( 6 + 3 + 4 = 13, 1 + 6 = 7, 4 + 6 + 1 + 7 = 18, 1 + 8 + 7 = 16)
  • k = 3
  • nrMax = 4

2. példa


Bemenet
  • n = 17
  • a = (10, 12, 11, 2, 2, 3, 2, 3, 13, 3, 41, 5, 4, 5, 6, 5, 2)
  • m = 6
  • b = (33, 4, 15, 41, 25, 2)



Kimenet
  • red = hamis ( mert 10 + 12 + 11 = 33, 2 + 2 = 4, de 3 + 2 + 3 <15 és 3 + 2 + 3 + 13> 15, tehát a b3 = 15 érték nem érhető el az a sorban lévő egymást követő elemek összegzésével)
  • k = -1
  • nrMax = -1