Egy nyakláncban n (n<=100) gyöngy van. A gyöngyszemek piros, kék vagy fehér színűek, és véletlenszerűen vannak felfűzve a nyakláncba. A következő két ábra (a és b) n=29 esetre mutat egy-egy példát. Az ábrán "o" jelöli a piros gyöngyöt, "x" a kéket, "#" a fehéret. (Az 1 és 2 szám az első illetve a második gyöngyöt jelöli.)
1 2 o x x o o x o o o o x o x x x x x x o o x o x o o o o x o a) ábra
1 2 x o o x x x x o # o # # o o x x o x x o o o o o o x o o # b) ábra Az a) ábrán látható elrendezés az alábbi karaktersorozattal írható le: "brbrrrbbbrrrrrbrrbbrbbbbrrrrb", ahol "b" (blue) jelöli a kék és "r" (red) a pirosat.
Tegyük fel, hogy elvágjuk a láncot, egy egyenes mentén lerakjuk az asztalra, majd az egyik végétől elindulva felszedjük az egymás mellett fekvő, egyforma színű gyöngyöket (vagyis addig szedjük fel a gyöngyszemeket, amíg eltérő színűhöz nem érünk), majd ugyanezt tesszük a másik végéről elindulva (ezek persze más szinűek is lehetnek, mint az előzőek).
Határozd meg azt a pontot, ahol a láncot el kell vágni ahhoz, hogy a lehető legtöbb gyöngyszemet szedjük össze.
Például az a) ábrán bemutatott nyakláncból 8 gyöngy vehető fel, ha a láncot a 9. és a 10. vagy a 24. és a 25. gyöngy között vágjuk el.
Egyes nyakláncokban fehér gyöngyszemek is vannak, amint az a b) ábrán látható. Amikor a gyöngyöket gyűjtjük, a fehér gyöngyöket pirosnak is, kéknek is vehetjük szükség szerint (mintha átfestenénk őket a megfelelő színre). Az ilyen elrendezést leíró karaktersorozatokban "r", "b" és "w" betűk lehetnek.
Írj programot az alábbi részfeladatok elvégzésére!
Bemenet:
A NECKLACE.DAT állomány soronként egy-egy elrendezést ír le.Kimenet:A NECKLACE.SOL állományba a gyöngyöt meghatározó sor alá a felszedhető gyöngyök maximális számát (M-et) és a hozzá tartozó vágási pontot pontot kell írni. Ha valamely M-hez több vágási pont is van, elég közülük egyet kiírni! A különböző elrendezésekhez tartozó megoldásokat egy-egy üres sorral kell elválasztani.Példa:
NECKLACE.DAT NECKLACE.SOL brbrrrbbbrrrrrbrrbbrbbbbrrrrb
bbwbrrrwbrbrrrrrbbrbrrrbbbrrrrrbrrbbrbbbbrrrrb
8 between 9 and 10bbwbrrrwbrbrrrrrb
10 between 16 and 17
Egyes vállalatok más vállalatoknak résztulajdonosai lehetnek, ha megszerezték összes részvényeik egy részét. Például a Ford 12%-ban tulajdonosa a Mazdának. Az "A" vállalat akkor irányítja "B"-t, ha az alábbi feltételek valamelyike teljesül:a) A=BFeladat:
b) A több, mint 50%-ban tulajdonosa B-nek.
c) van k (k>=1) olyan C(1), ..., C(k) vállalat, amelyeket A irányít, és minden egyes C(i) vállalat x(i)%-ban tulajdonosa B-nek, ahol 1<=i<=k és x(1)+...+x(k)>50%.Adott az (i,j,p) hármasok sorozata, ahol a hármasok azt jelentik, hogy az i vállalat p%-ban tulajdonosa a j vállalatnak. (A vállalatok száma legfeljebb 100 lehet.) Állítsd elő az összes olyan (h,s) párt, amelyben h vállalat irányítja az s vállalatot.Bemenet:A COMPANY.DAT állományban szerepelnek az (i,j,p) hármasok sorozatai, ahol i, j és p pozitív egész számok! Egy-egy sorozat egy-egy vállalatcsoportot ír le. Az egyes sorozatokat üres sor választja el egymástól.Kimenet:A COMPANY.SOL állományba az összes olyan megtalált (h,s) párt kell írni, ahol h<>s. A (h,s) párokat egymás utáni sorokbanm h szerint növekvő sorrendben kell kiírni. A különböző vállalatcsoportokhoz tartozó megoldásokat egy-egy üres sorral kell elválasztani.Példa:
COMPANY.DAT COMPANY.SOL 2 3 25
1 4 36
4 5 63
2 1 48
3 4 30
4 2 52
5 3 301 2 30
2 3 52
3 4 51
4 5 70
5 4 20
4 3 204 2
4 3
4 52 3
2 4
2 5
3 4
3 5
4 5
N darab különböző színű téglalapot helyezünk egy fehér lapra úgy, hogy átfedhetik egymást. A fehér lap a cm széles és b cm hosszú (a és b 30-nál nem nagyobb, pozitív páros számok). A téglalapok két-két oldala párhuzamos a fehér lap megfelelő oldalaival. A téglalapok nem lóghatnak ki a fehér lapról. Végül különböző színű alakzatokat láthatunk. Két azonos színű téglalaprészlet ugyanahhoz az alakzathoz tartozik, ha legalább egy (matematikai értelemben vett) közös pontjuk van; egyébként különböző alakzatoknak tekintjük őket.Feladat:
Számítsd ki az összes előálló alakzat területét! A koordinátarendszer origója a fehér lap közepe, tengelyei párhuzamosak a fehér lap széleivel.Bemenet:A RECTANG.DAT állományban különféle adatsorozatok vannak. Az adatsorozatokat üres sorok választják el egymástól.Kimenet:A téglalapokat az állományban megadott sorrendben helyezzük a fehér lapra.
- minden egyes sorozat első sorában a, b és N van, egymástól szóközzel elválasztva,
- a következő N sor mindegyikében az alábbi adatok vannak, egymástól szóközzel elválasztva:
- az elhelyezendő téglalap bal alsó sarkának koordinátái (egész számok), ezután
- az elhelyezendő téglalap jobb felső sarkának koordinátái (egész számok), végül
- a téglalap színét jelölő egész szám (1 és 64 közötti érték). A fehér színt az 1 jelöli.
A RECTANG.SOL állományba az összes előálló alakzat színét és területét kell kiírni. Az alakzatokat leíró adatokat színek szerint növekvő sorrendben kell kiírni, soronként egyet! Az egyes adatsorozatokhoz tartozó eredményeket egy-egy üres sorral kell elválasztani egymástól.Példa:
RECTANG.DAT RECTANG.SOL 20 12 5
-7 -5 -3 -1 4
-5 -3 5 3 2
-4 -2 -2 2 4
2 -2 3 -1 12
3 1 7 5 130 30 2
0 0 5 14 2
-10 -7 0 13 151 172
2 47
4 12
4 8
12 11 630
2 70
15 200