C++ for ciklus a for ciklusban?
Sziasztok,
Tudnátok segíteni a C++ házimban?
Ez a feladatom: [link]
És így néz ki a kódom: [link]
For, if, cin, cout-on kívül mást nem lehet használni a megoldásához.
Viszont itt elakadtam, és nem tudom, hogy a for ciklusba mit kéne írni.
Valami olyasmire gondoltam, hogy
if( erkezes[I] < erkezes[j] <= tavozas[i] ) {
talalkoztak = true;
}
.
.
.
if( talalkoztak = true ) {
db++;
}
if ( db > maxdb ) {
maxdb = db;
}
De nem sikerül sehogy sem... illetve ki van kötve, hogy az időlimit 0,2 sec, de ha mondjuk N = 100000 vagy valami nagy szám, akkor hogy tudna lefutni ennyi idő alatt?
Nem néztem meg semmit sem csak ez feltűnt:
if( erkezes[I] < erkezes[j] <= tavozas[i] )
Ezt ha értelmezni akarom sorban akkor így történik:
- erkezes[I] (nagy i) kisebb mint erkezes[j] -> IGAZ
tehát van egy IGAZ/HAMIS boolean amit tovább vizsgálsz, hogy kisebb egyenlő-e mint tavozas[j]
- IGAZ kisebb egyenlő mint tavozas[i] -> ez mindenre igaz lesz kivéve 0 értékre.
____________________________________
A helyes feltétel felírás (nem tudom mi micsoda neked, kaka index neveid vannak):
if( erkezes[i] < erkezes[j] && erkezes[j] <= tavozas[i] ){
}
Az időlimit ezzel az algoritmussal nem lesz tartható, mert a végrehajtási idő N négyzetével lesz arányos.
Ez inkább algoritmizálási feladat, de láthatóan még csak a nyelv alapjaival ismerkedsz. Hol kaptad ezt a feladatot?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!