|
|||
TörténelemvizsgaAz informatikában sok probléma foglalja magában valamilyen érték maximalizálását bizonyos megszorítások mellett. Vegyünk például egy történelemvizsgát, amelynek során a diákoknak kronológiai sorrendbe kell rakniuk néhány történelmi eseményt. Azok a diákok, akik az összes eseményt helyesen rakják sorba, maximális pontszámot kapnak. Hogyan adjunk azonban részpontszámot azoknak a diákoknak, akik egy vagy több eseményt hibásan sorolnak be? Íme néhány lehetőség a részpontszámok adására:
Ha például négy esemény helyes sorrendje 1 2 3 4, akkor az 1 3 2 4 sorrend 2 pontot ér az első módszer szerint (az 1-es és 4-es események sorszáma helyes), és 3 pontot ér a második módszer szerint (az 1 2 4 és az 1 3 4 eseménysorozat is egymáshoz viszonyítva helyes sorrendben tartalmazza az eseményeket). Ebben a feladatban egy olyan programot kell írnod, amely ilyen jellegű feleleteket pontoz a második módszer szerint. Legyen adott n esemény: 1, 2, …, n! Ha ismerjük ezen események c1, c2, …, cn helyes kronológiai sorrendjét, ahol 1 ≤ ci ≤ n az i-edik esemény sorszáma a helyes kronológiai sorrendben, valamint ismerjük egy diák által adott r1, r2, …, rn sorrendet, ahol 1 ≤ ri ≤ n az i-edik eseménynek a diák által megadott sorszáma, határozd meg a diák válaszában a leghosszabb olyan (nem feltétlenül összefüggő) eseménysorozat hosszát, amelyben az események egymáshoz viszonyítva helyes kronológiai sorrendben szereplnek! A bemenet specifikációjaA bemenet első sora egyetlen n egész számot tartalmaz, amely az események számát adja meg (2 ≤ n ≤ 20). A második sor n egész számból áll, amelyek n esemény helyes kronológiai sorrendjét írják le. A további sorok mindegyikében szintén n egész szám szerepel, amelyek az n esemény egy-egy diák által megadott kronológiai sorrendjét reprezentálják. Ezen sorok mindegyike n számot tartalmaz az [1, …, n] intervallumból, és minden szám pontosan egyszer fordul elő mindegyik sorban. Az egy sorban szereplő számokat egy vagy több szóköz választja el egymástól. A kimenet specifikációjaA diákok által megadott mindegyik eseménysorrendre az adott sorrendre járó pontszámot kell a kimenetre írni, soronként egyet-egyet. 1. példa bemenet
Az 1. példa bemenethez tartozó kimenet
2. példa bemenet
A 2. példa bemenethez tartozó kimenet
|
|||
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30. |