Adott N négyzet a koordinátarendszerben, melyeknek oldalai párhuzamosak a koordinátarendszer tengelyeivel. Minden négyzet sarokpontjainak koordinátái egész számok. A négyzetek nem fedik és nem is érintik egymást, azaz oldalaiknak sincs közös pontja.
Ki kell számitani, hogy hány négyzet látható az O origóból. Az origó koordinátái (0,0).
Egy négyzet látható az origóból, ha van két olyan különböző A és B pont a négyzet valamelyik oldalán, hogy az OAB háromszögnek nincs közös pontja a többi négyzettel.Bemenet:
A SQUARES.IN szöveges állomány első sora a négyzetek N (1<= N<=1000) számát tartalmazza. A következő N sor mindegyike egy négyzetet ir le a sorban található X, Y és L számokkal, (1<= X,Y,L<=10000), ahol X és Y a négyzet bal alsó sarkának koordinátái (azaz a legkisebb X és Y koordinátájú sarok), L pedig a négyzet oldalhossza.Kimenet:A SQUARES.OUT szöveges állomány első és egyetlen sora az origóból látható négyzetek számát tartalmazza.Példa:
SQUARES.IN SQUARES.OUT 3
2 6 3
1 4 1
3 4 13 4
1 2 1
3 1 1
2 4 2
3 7 12
Alice és Bob olyan kártyával játszik, amelynek N lapja van és minden kártya az 1..N számok valamelyikét tartalmazza cimkeként. Tehát nincs két kártya azonosan cimkézve. Feltételezzük, hogy N páratlan szám.
Van egy kártyakeverő gépük, amely átrendezi a sorban egymás után lerakott kártyák sorrendjét. A keverőgép úgynevezett duplakeverést végez, ami a következőt jelenti: minden i (1<= i<=N) pozicióra ha ott a j cimkéjű kártya van, akkor megnézi, hogy a j pozicióban milyen kártya van, legyen ez k. Ekkor az átrendezést úgy végzi el, hogy az i pozicióba a k cimkéjű kártya kerül.
Alice és Bob a következőképpen játszik. Először Alice véletlenszerűen lerakja a kártyákat, legyen ekkor a kártyák cimkéjének sorrendje a1, a2, ..., aN Ezután átrendezi a kártyák sorrendjét úgy, hogy az ai pozicióba az ai+1 cimkéjű kártya kerül minden i-re (1<= i<=N-1), és az aN pozicióba az a1 kerül.
Az igy kapott cimkesorrendet jelölje x1, x2, ..., xN, ami azt jelenti, hogy az i-edik pozicióban az xi cimkéjű kártya van.
Ezután Alice végrehajt S számú duplakeverés műveletet a keverőgéppel. Az igy kapott kártyasorozat cimkéinek sorrendjét jelölje p1, p2, ..., pN. Ezt a kártyaállást kapja Bob, és megkapja az S számot is. Bob feladata, hogy kideritse azt az x1, x2, ..., xN kártyaállást , amelyet Alice előállitott a keverés megkezdése előtt.Bemenet:
A CARDS.IN szöveges állomány első sora két egész számot tartalmaz egy szóközzel elválasztva, az N (1<=N<=1000) páratlan számot, amely a kártyák száma, és a duplakeverések S (1<=S<=1000) számát.Kimenet:
A következő N sor mindegyike egy egész számot tartalmaz. Ez az N szám az összes duplakeverés végrehajtása után kapott kártyaállást irja le. Az állomány (i+1) – edik sorában álló pi szám azt jelenti, hogy a kártyaállásban az i -edik pozicióban a pi cimkéjű kártya áll.A CARDS.OUT szöveges állomány N sort tartalmazzon, ami azt az x1, x2, ..., xN kártyaállást irja le, amely a keverések elvégzése előtt volt. Az állomány i –edik sorában az xi szám álljon, azaz az i –edik pozicióban álló kártya cimkéje.Példa:
CARDS.IN CARDS.OUT 5 2
4
1
5
3
22
5
4
1
37 4
6
3
1
2
4
7
54
7
5
6
1
2
3
Adott N darab pozitiv egész számoknak egy a = [a1, a2, ..., aN] sorozata. Egy ilyen sorozaton úgynevezett kontrakció műveletet végezhetünk.
Egy kontrakció művelet azt jelenti, hogy valamely i indexre az ai és az ai+1 számokat helyettesitjük az ai-ai+1.értékkel. Pontosabban, con(a,i) jelölje azt az (N-1) elemű sorozatot, amelyet az [a1, a2, ..., aN] sorozatból kapunk az ai és ai+1 elemeket helyettesitve az ai-ai+1 értékkel.con(a,i) = [a1, ..., ai-1, ai-ai+1, ai+2, ..., aN]
Látható, hogy egy N elemű sorozaton pontosan N-1 különböző kontrakció műveletet hajthatunk végre, és mindegyik egy N-1 elemű sorozatot eredményez.
Nyilvánvaló, hogy N-1 kontrakciót vágrehajtva egy N elemű sorozatra, az eredmény egy egész szám lesz.
Például a [12,10,4,3,5] sorozatra a 2, 3, 2 és 1 indexekkel végrehajtott kontrakciók a 4 értéket eredményezik.con([12,10,4,3,5],2) = [12,6,3,5]
con([12,6,3,5] ,3) = [12,6,-2]
con([12,6,-2] ,2) = [12,8]
con([12,8] ,1) = [4]Adott az a1, a2, ..., aN sorozat és a T cél érték. A feladat az, hogy keressünk olyan N-1 kontrakciót, amelyeket az adott sorrendben végrehajtva az eredmény a T szám lesz.
Bemenet:
A SUBTRACT.IN szöveges állomány első sora két egész számot tartalmaz egy szóközzel elválasztva, a számsorozat N (1<= N<=100) számát és a T (-10000<=T<=10000) cél értéket.Kimenet:
A következő N sor mindegyike egy egész számot tartalmaz, az állomány (i+1)-edik sorában a szémsorozat ai (1<=ai<=100) eleme áll.A SUBTRACT.OUT szöveges állomány N-1 sort tartalmazzon, ami egy olyan kontrakció sorozatot ad, amelyet ebben a sorrendben végrehajtva a bemeneti sorozatra, a kivánt T cél értéket kapjuk.Példa:
Feltételezhetjük, hogy minden bemenő adatra van legalább egy megfelelő kontrakció sorozat.
SUBTRACT.IN SUBTRACT.OUT 4 5
10
2
5
21
2
15 4
12
10
4
3
52
3
2
1