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

1 -  2sah 100 puncte 
 
Se dă o tablă de șah cu n+1 linii (numerotate de sus în jos  începând cu 1) și 2n+1 coloane (numerotate 
de la st ânga la dreapta începând cu 1 ). Pe prima linie p ătratul din mijloc conține 1 gram de fân , iar 
celelalte pătrate de pe prima linie nu conțin nimic. Începând cu linia a doua fiecare pătrat conține o 
cantitate de fân obținută prin adunarea cantităților de fân din cele 3 pătrate ale liniei anterioare cu care se 
învecinează (pe verticală și  diagonală). De exemplu dacă n=3 tabla are 4 linii, 7 coloane și următoarea 
configurație. 
 
 *  1    
  1 1* 1   
 1 2 3 2 1*  
1 3 6 7 6 3 1 
 
Un cal pleacă de pe prima linie , de pe o coloana k<=n, sare din orice poziț ie (i,j) în poziția 
(i+1,j+2) atât timp cât este posibil și mănâncă tot fânul din p ătratele prin care trece. De exe mplu, 
pentru n=3 și k=2, pătratele prin care trece calul sunt marcate cu asterisc ( * ) 
 
Cerinţe 
1. Cunoscând n și k, să se calculeze cantitatea de fân de pe linia k a tablei. 
2. Cunoscând n și k, să se calculeze câte grame de fân mănâncă un cal care pleacă de pe prima linie, 
de pe coloana k. 
Întrucât aceste numere pot fi mari, se cere doar restul modulo 100003 ale acestor numere. 
 
Date de intrare 
Fișierul de intrare 2sah.in va conține pe prima linie un număr t cu valoarea 1 sau 2. Pe a doua li nie a 
fișierului de intrare se găsesc două numere naturale n și k separate printr-un spațiu. 
Dacă t=1 se va rezolva prima cerință , deci  pentru valoarea n citită tabla are n+1 linii și 2n+1 coloane, 
iar k reprezintă numărul liniei de pe care trebuie calculată cantitatea de fân. 
Dacă t=2 se va rezolva a doua cerință, deci  pentru valoarea n citită tabla are n+1 linii și 2n+1 coloane, 
iar k reprezintă numărul coloanei din prima linie de unde pleacă calul. 
 
Date de ieşire 
 
Dacă t din fișierul de intrare este 1 se va rezolva doar prima cerință. 
În acest caz fiș ierul de ieșire 2sah.out va conține un singur număr reprezentând canti tatea totală de fân din 
toate pătratele situate pe tabla pe linia k (trebuie afișat restul modulo 100003). 
 
Dacă t din fișierul de intrare este 2 se va rezolva doar a doua cerință. 
În acest caz fișierul de ieșire 2sah.out va conține un singur număr reprezentând cantitatea totală de fân mâncată 
de un cal care pleacă de pe linia 1 și coloana k (trebuie afișat restul modulo 100003). 
 
Restricţii 
• 1 <= k <= n <= 1000000000 (un miliard) 
• La cerința 1 p entru 80% dintre teste  k <= n <=  1000000, iar 
pentru alte 20% din teste k <= n <= 1000000000 
• La cerința 2 pentru 30% dintre teste k <= n <= 1000, pentru alte 
30% dintre teste  k <= n <= 1000000 , iar pentru restul de 40% 
dintre teste k <= n <= 1000000000. Ministerul Educaţiei și Cercetării Științifice 
Olimpiada de Informatică – etapa judeţeană - liceu Clasa XI-XII                                     
7 martie 2015 Sursa: ID1.cpp, ID1.c, ID1.pas 
 
 
• Rezolvarea cor ectă a primei cerințe asigur ă 30% din punctaj ul 
testului respectiv. 
• Rezolvarea cor ectă a celei de a doua cerințe asigura 70% din 
punctajul testului respectiv.
2 – Dragoni pag. 1 din 2 
 
Problema 2 – Dragoni 100 puncte 
 
 Supărați că lansarea părții a treia a filmului lor preferat s -a amânat până în iunie 2018, Henry și 
Hetty s-au gândit la propriul scenariu pentru finalul trilogiei: 
 Într-o lume în care vikingii pot zbura cu dragonii există N insule. Hiccup, șeful tribului de vikingi 
aflat pe insula 1, știe M rute directe de zbor bidirecționale între insule. Pentru fiecare j intre 1 si M, ruta j 
unește insulele Aj și Bj și are lungime Dj.  
Pe fiecare insulă i,(1 ≤ i ≤ n) există dragoni din specia i care pot zbura fără a se opri pentru 
odihnă o distanță maximă Dmaxi. Cu alte cuvinte, dragonii de pe insula i vor putea parcurge orice rută 
j,(1 ≤ j ≤ m) pentru care Dj ≤ Dmaxi, indiferent de ce alte drumuri au făcut anterior. 
 Hiccup dorește să ajungă de pe insula 1 pe insula N pentru a -l salva pe Toothlesșdragonul lui. 
Pentru a ajunge acolo, el va lua inițial un dragon din specia 1 (de pe insula 1). Apoi, dacă la un moment dat 
Hiccup se află pe o insula i,(1 ≤ i ≤ n) având cu el un dragon din specia țel poate: 
 
1. Să zboare de pe insula i pe o altă insulă x cu dragonul pe care îl are, folosind o rută directă j între 
insulele i si x, bineînțeles doar dacă Dj ≤ Dmaxt . 
 
2. Să schimbe dragonul din specia t pe care îl are cu un dragon din specia i aflat pe insula respectivă. 
 
Cerințe 
 
a. Să se determine distanța maxima Dmaxi caracteristică unui dragon la care Hiccup poate ajunge fără 
a schimba dragonul pe care l-a luat inițial de pe insula 1.  
b. Să se determine distanța minimă pe care Hiccup trebuie să o parcurgă pentru a ajunge de pe insula 1 
pe insula N. 
 
Date de intrare 
 
Fişierul de intrare dragoni.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, 
numărul p poate avea doar valoarea 1 sau valoarea 2. Pe a doua linie se găsesc două numere naturale N și 
M reprezentând numărul de insule, respectiv numărul de rute directe între insule. Pe a treia linie se găsesc N 
numere naturale, al i-ulea dintre acestea reprezentând distanta maximă Dmaxi pe care o poate zbura un 
dragon de pe insula i. Pe următoarele M linii sunt descrise cele M rute directe. Pe fiecare dintre aceste linii 
se găsesc câte trei numere naturale A, B și D cu semnificația că există rută bidirecțională de lungime D 
între insulele A și B . 
 
Date de ieșire 
 
In fişierul de ieşire dragoni.out se va afișa un singur numar natural.  
 
Dacă valoarea lui p este 1, se rezolvă numai cerința a.  
În acest caz numărul afișat va reprezenta distanța maximă Dmaxi a unui dragon i la care Hiccup poate 
ajunge fără a schimba dragonul pe care l-a luat inițial de pe insula 1.  
 
Daca valoarea lui p este 2, se va rezolva numai cerința b, 
În acest caz numărul afișat va reprezenta distanța minima pe care Hiccup trebuie să o parcurgă pentru a 
ajunge de pe insula 1 pe insula N. 
 
 Ministerul Educaţiei Naţionale 
Olimpiada de Informatică – etapa judeţeană Clasele a XI-XII-a                                                 
7 martie 2015 Sursa: ID2.pașID2.cpp, ID2.c 
  
Problema 2 – Dragoni pag. 2 din 2 
 
Restricții 
 
• 1 ≤ N ≤ 800 
• 1 ≤ M ≤ 6000 
• 1 ≤ Dmaxi ≤ 50 000, pentru orice 1 ≤ i ≤ N. 
• 1 ≤ Aj, Bj ≤ N, pentru orice 1 ≤ j ≤ M. 
• 1 ≤ Dj ≤ 50 000, pentru orice 1 ≤ j ≤ M. 
• Se garantează că Hiccup poate ajunge pe insula N. 
• Se garantează că răspunsul oricărei cerințe este un număr natural mai mic decât  109. 
• Pentru rezolvarea corectă a primei cerințe se acordă 20% din punctajul testului respectiv. 
• Pentru rezolvarea corectă a celei de-a doua cerințe se acordă 80% din punctajul testului respectiv.