Model subiect olimpiada de informatică, clasa a 10-a, faza județeană

1 -  pif 90 de puncte 
 
După ce a primit de la Simonețprofesorul său de studii sociale, tema pentru proiecțtânărului 
Trevor i-a venit ideea jocului ” Pay it forward”. Pentru cei care nu știu acest joc, el constă în ajutarea de 
către Trevor a oamenilor aflați la ananghie. Aceștia la rândul lor vor ajuta alți oameni și așa mai departe. 
Fiecare participant (inclusiv Trevor) trebuie să realizeze câte k fapte bune  prin care să ajute 
oamenii. Vârstnicii și tinerii își îndeplinesc în mod diferit această sarcină. Vârstnicii au nevoie de zv zile 
pentru a  introduc e în joc  o altă persoană , iar  tinerii au nevoie de zt zile. Astfel dacă un vârstnic, 
respectiv un tânăr, intră în joc în ziua  i, el va introduce la rândul lui în joc prima persoană în ziua  i+zv, 
respectiv în ziua i+zt tânărul, a doua persoană în ziua i+2*zv, respectiv în ziua i+2*zt tânărul și așa mai 
departe. Astfel numărul de persoane care particip ă la joc poate fi diferit în funcție de cum sunt alese 
persoanele vârstnice și cele tinere. Trevor dorește ca în joc să fie realizate în total cât mai multe fapte 
bune, dar fiecare participant s ă aducă în joc  maximum (k+1)/2 tineri și maximum (k+1)/2 vârstnici. 
Participanții pot aduce mai puține persoane de un anumit tip, dar nu au voie să depășească numărul de 
(k+1)/2 persoane de același tip. 
 
Cerințe 
Care este numărul fb de fapte bune care  mai sunt de realizat , după trecerea a n zile, de către 
persoanele intrate deja în joc, astfel încât numărul total de fapte bune așteptate (și cele realizate și cele 
nerealizate) să fie maxim? 
 
Date de intrare 
Fișierul de intrare pif.in conține pe prima linie numărul natural n, pe a doua linie numărul k și 
pe a treia linie numerele zv și  zt separate printr-un spațiu.  
Date de ieșire 
În fișierul de ieșire pif.out se va scrie restul împărțirii lui fb, cu semnificația din enunț, la 1234567 
(fb modulo 1234567). 
 
Restricții 
 1 ≤ n ≤ 106  
 1 ≤ k, zțzv ≤ n 
 Pentru teste în valoare de 30 de puncte fb ≤ 106 
 Pentru teste în valoare de 30 de puncte zv = zt = 1 
 Pentru teste în valoare de 20 de puncte zv = zt ≠ 1 
 Pentru teste în valoare de 70 de puncte k•n ≤ 106
2  traseu 90 de puncte 
O suprafață de teren de formă dreptunghiulară este divizată în N fâșii orizontale și M fâșii verticale, de 
lățimi egale. Se formează astfel N x M zone de formă pătrată, cu latura egală cu o unitate. Astfel, 
suprafața este reprezentată sub forma unui tablou bidimensional cu N linii și M coloane, în care p entru 
fiecare zonă este memorat un număr ce reprezin tă altitudinea zonei respective . Interesant este că în 
tablou apar toate valorile 1,2,…,N∙M. Suprafața este destinată turismului. Deoarece spre laturile de Est 
și Sud ale suprafeței există peisaje de o frumusețe uimitoare, se dorește găsirea unor trasee turistice în 
care deplasarea să se realizeze c u pași de lungime unitară mergând doar spre Est și spre Sud. O 
comisie, care trebuie să rezolve această problemă, a stabilit că un traseu este atractiv dacă și numai 
dacă ultima poziție a traseului are altitudinea mai mare decât prima poziție a traseului. Un traseu poate 
începe, respectiv se poate încheia, în oricare dintre zonele terenului, cu respectarea condițiilor 
anterioare.  
 
Cerinţe 
Se cere să se determine numărul maxim Z de zone pe care le poate avea un traseu atractiv. 
 
Date de intrare 
În fişierul de intrare traseu.in se află scrise pe prima linie numerele N şi M, cu semnificația din enunț. Pe 
fiecare dintre următoarele N linii se află scrise câte M numere naturale , reprezentând, elementele 
tabloului bidimensional precizat în enunț. Nume rele aflate pe aceeași linie a fișierului sunt  separate prin 
câte un spaţiu. 
 
Date de ieşire 
În fişierul de ieşire traseu.out se va scrie numărul Z, cu semnificația din enunț . Dacă nu există niciun 
traseu atractiv, atunci se va scrie 0. 
 
Restricţii 
 1 ≤ N ≤ 500 
 1 ≤ M ≤ 500 
 Pentru teste in valoare de 40 de puncte, N ≤ 50 și M ≤ 50
3 yinyang 90 de puncte 
 
Se d ă o matrice  A cu N linii și  M coloane, cu valori cuprinse între  1 și N∙M inclusiv, nu neapărat 
distincte. O operație constă în selectarea a două linii sau două coloane consecutive și 
interschimbarea acestora (swap). O matrice  yin-yang este o matrice în care   A[ i ] [ j ] ≥ A[ i ][ j – 1], 
pentru orice pereche (i, j) cu 1 ≤ i ≤ N și 2 ≤ j ≤ M și A[ i ][ j ] ≥ A[ i – 1][ j ], pentru orice pereche (i, j) cu 
2 ≤ i ≤ N și 1 ≤ j ≤ M. 
 
Cerinţe 
Să se determine numărul minim de operații necesare pentru a transforma matricea dată într -o 
matrice yin-yang.  
 
Date de intrare 
În fișierul de intrare yinyang.in se află scrise pe prima linie numerele naturale N și M, cu semnificația 
din enunț. Pe fiecare dintre următoarele N linii se află câte M numere naturale, reprezentând elementele 
matricei date A. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu. 
 
Date de ieşire 
În fișierul yinyang.out se va scrie numărul minim de operații cerut sau -1 dacă nu există soluție. 
 
Restricţii și precizări 
- 1 ≤ N, M ≤ 100 
- Pentru teste în valoare de 9 puncte: 1 ≤ N, M ≤ 5 
- Pentru alte teste în valoare de 18 puncte:  N = 1 
- Pentru alte teste în valoare de 36 de puncte elementele din matrice sunt DISTINCTE