Categories
Introduction

Problema olimpiada

Ionel are N cartonașe. Fiecare cartonaș are înscrise două numere (un număr, s, în partea stângă, și
celălalt număr, d, în partea dreaptă). El a așezat cartonașele într-un șir, lipite unul de celălalt, astfel încât
numărul din partea dreaptă a primului cartonaș este lipit de numărul din partea stângă a celui de-al
doilea cartonaș, numărul din partea dreaptă a celui de al doilea cartonaș este lipit de numărul din partea
stângă a celui de-al treilea cartonaș etc. Spunem că două cartonașe alăturate ”se potrivesc” dacă
numărul din dreapta al primului cartonaș este egal cu numărul din stânga al celui de al doilea cartonaș.
Ionel observă că sunt perechi de cartonașe alăturate care ”se potrivesc” și chiar secvențe de mai multe
cartonașe alăturate, în care primul ”se potrivește” cu al doilea, al doilea ”se potrivește” cu al treilea etc.
Cerinţă. Scrieţi un program care să citească numărul N de cartonașe, numerele înscrise pe fiecare
cartonaș și determină:
1) Numărul de perechi de cartonașe care ”se potrivesc”.
2) Numărul de cartonașe din cea mai lungă secvență în care fiecare două cartonașe alăturate ”se
potrivesc”.
3) Numărul de secvențe cu număr maxim de cartonașe care “se potrivesc”.
Date de intrare
Fişierul de intrare cartonase.in conţine doar numere naturale nenule:
− pe prima linie se găsește numărul C care poate avea doar valorile 1, 2 sau 3 și reprezintă cerința
care urmează a fi rezolvată. Pe a doua linie a fișierului se găsește numărul natural N, cu
semnificația din enunț.
− pe fiecare dintre următoarele N linii se află, în acestă ordine, câte două numere naturale s şi d,
separate printr-un spațiu, cu semnificația din enunț pentru un cartonaș. Perechile de numere sunt
date în ordinea în care cartonașele corespunzătoare lor apar în șirul lui Ionel.
Date de ieşire
Fişierul de ieşire cartonase.out va conţine pe prima linie un număr natural reprezentând răspunsul la
cerința specificată.
Restricţii şi precizări
• 1 ≤ N ≤ 500; 1 ≤ s ≤ 10000; 1 ≤ d ≤10000
• Pentru rezolvarea fiecărei cerințe se obțin câte 30 de puncte