Írj programot, amely beolvas három pozitív egészet (N, P, Q). Döntsd el, létezik-e olyan N darab egész számból álló számsorozat, amelyben bármely P egymást követő elem összege pozitív és bármely Q egymást követő elem összege pedig negatív!Ha a válasz IGEN, akkor programodnak meg kell határoznia egy ilyen sorozatot.
Bemenet:
A BW.IN állomány 3 számot tartalmaz, az N, P, Q értékét, egymástól szóközzel elválasztva. (N<=50)Kimenet:A BW.OUT állomány első sorában a YES áll, ha létezik megoldás, egyébként tartalma NO. YES válasz esetén a második sorban az N elemű, egészekből álló sorozat található.Példa:
BW.IN BW.OUT 4 2 3 NO 6 5 3 YES
-3 5 -3 -3 5 -3
Egy országban N város van. Adottak a városokat közvetlenül összekötő utak. Minden egyes közvetlen út hossza 1. Az úthálózatot páros-páratlannak nevezzük, ha van két olyan város, melyek között van páros és páratlan hosszúságú útvonal is.
- Állapítsd meg egy úthálózatról, hogy páros-páratlan-e vagy sem!
- Ha az A kérdésre a válasz NEM, akkor keresd meg a városok olyan, maximális elemszámú X részhalmazát, melyben bármely két várost összekötő összes út hossza páros! (Ez az út az X részhalmazban kezdődik és végződik, de érinthet X-en kívüli városokat is.)
Bemenet:Az INPUT.TXT állomány első sora az N értéket, azaz a városok számát (N<=300) tartalmazza. A következő sorok I, J párokat tartalmaznak, amelyek azt jelentik, hogy I és J között közvetlen út van.Kimenet:Az OUTPUT.TXT első sora az IGEN vagy a NEM szót tartalmazza. Ha az első sor NEM, akkor a második sor a keresett X részhalmaz elemszámát tartalmazza, a harmadik sorba pedig a részhalmaz elemeinek felsorolását tartalmazza.Példa:
INPUT.TXT OUTPUT.TXT 5
1 2
2 3
3 4
4 5
5 1IGEN 3
1 2NEM
2
2 3
Egy kifejezés összeadásokat és szorzásokat tartalmaz. Az összeadás (+) elvégzéséhez P, a szorzáséhoz Q idő szükséges. Az AoB kifejezés kiértékeléséhez szükséges idő egyenlő a művelet (o) ideje plusz az A és a B részkifejezések kiértékeléséhez szükséges idő maximuma. (Az A és a B részeket párhuzamosan értékeljük ki.) A műveletek operandusai egyetlen karakterből álló változónevek. Ezek kiértékelésének ideje 0.
A kifejezésekben a zárójeleket a megszokott módon, a máveletek elvégzési sorrendjének meghatározására használjuk.
- Írj programot, amely minden kifejezésre meghatározza a kiértékeléshez szükséges időt!
- Keresd meg azt, az eredetivel ekvivalens kifejezést, melynek kiértékelési ideje minimális, és add meg ennek az idejét is!
Az átalakítási szabályok a következők:Az egyes kifejezések teljesen zárójelezettek (a zárójelek nem hagyhatók el).
x+y=y+x x*y=y*x kommutativitás x+(y+z)=(x+y)+z x*(y*z)=(x*y)*z asszociativitás Bemenet:
Az INPUT.TXT állomány első sora a P és a Q értékét tartalmazza, a következő sorok pedig egy-egy kifejezést.Kimenet:Az OUTPUT.TXT tesztesetenként 3 sort tartalmaz. Az első sor az A eset megoldását adó szám, a második a B feladatban szereplő kifejezés, a harmadik sorban pedig az ennek kiértékeléséhez szükséges idő szerepel.Példa:
INPUT.TXT OUTPUT.TXT 1 1
((a+(b+(c+d)))*e)*f
((((a*b)*c)*d)+e)+(f*g)5
((a+b)+(c+d))*(e*f)
3
5
(((a*b)*(c*d))+e+(f*g)
4