.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » punctfix

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
punctfix


Timp maxim de execuţie / test:
0.15s
Memorie totala disponibilă / stivă:
16MB / 1MB

Fie un şir a cu n elemente: a=(a[1], a[2], …, a[n]). Vom numi un punct fix al şirului orice element de pe o poziţie i care are proprietatea că a[i]=i.
De exemplu următorul şir cu 7 elemente a=(-3,-2, 1, 3, 4, 6, 10) are un singur punct fix i=6, pentru că a[6]=6.
Vom defini translaţia şirului cu o valoare v şirul obţinut prin adunarea la fiecare element din şir a valorii v; şirul obţinut se notează cu a{v}. În mod evident a{0}=a (adică şirul translatat cu valoarea 0 este chiar şirul iniţial).
Translaţia poate fi realizată atât cu o valoare pozitivă, cât şi cu o valoare negativă. Dacă aplicăm o translaţie cu valoarea 3 asupra şirului de mai sus vom obţine a{3}=(0,1,4,6,7,9,13). Observăm, că a{3} nu are niciun punct fix. Aplicând asupra şirului o translaţie de valoare -3, vom obţine a{-3}=(-6,-5,-2,0,1,3,7). Şirul translatat a{-3} are un punct fix în punctul 7 pentru că a{-3}[7]=7.

Cerinţă

Scrieţi un program care citeşte un şir a cu n elemente şi un şir de translaţii, şi calculează pentru fiecare translaţie numărul de puncte fixe. Şirul pe care îl vom verifica întotdeauna este strict crescător. Şirul translaţiilor nu este ordonat.

Date de intrare

Fişierul de intrare punctfix.in conţine pe prima linie valoarea lui n. Pe linia a doua se vor găsi n numere naturale a[1] a[2] ... a[n] separate prin spaţii, ordonate strict crescător. Linia a treia conţine valoarea k, iar pe linia a patra vom avea k numere întregi separate prin spaţiu v[1] v[2] ... v[k], corespunzătoare celor k translaţii.

Date de ieşire

Fişierul de ieşire punctfix.out va conţine k linii. Pe linia i se va tipări numărul de puncte fixe ale şirului translatat a{v[i]}, pentru 1≤i≤k.

Restricţii

2 ≤ n ≤ 10 000
-1 000 000 000 ≤ a[i] ≤ 1 000 000 000, pentru 1 ≤ i ≤ n
1 ≤ k ≤ 150 000
-1 000 000 000 ≤ v[i] ≤ 1 000 000 000, pentru 1 ≤ i ≤ k
max(a[i])-min(a[i])≤ 100000
max(v[i])-min(v[i])≤ 100000
• Elementele şirului a sunt ordonate strict crescător.
• Elementele şirului v pot fi în orice ordine, valorile elementelor de pe diferite poziţii pot fi egale sau distincte.
• Fiecare translaţie se aplică şirului iniţial.

Exemple

punctfix.inpunctfix.outExplicaţii
7 -3 -2 1 3 4 6 10 7 0 3 -3 4 2 -3 1000 1 0 1 2 1 1 0 translaţie cu 0, avem un punct fix: a{0}[6]=6
translaţie cu 3, nu avem elemente cu proprietatea a{3}[i]=i
translaţie cu -3, avem un punct fix: a{-3}[7]=7
translaţie cu 4, avem două puncte fixe: a{4}[1]=1, a{4}[2]=2
translaţie cu 2, avem un punct fix: a{2}[3]=3
translaţie cu -3, avem un punct fix: a{-3}[7]=7
translaţie cu 1000, nu avem elemente cu proprietatea a{1000}[i]=i

autor: Prof. Zoltan Szabo
propunător: Prof. Emanuela Cerchez
Colegiul Naţional ″Emil Racoviţă″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la Finala .campion 2011: cos, monoton, avioane, obstacole, echilibru1, dag, robotel, broscute
De acelaşi autor: balanta, bonuri, cub, magic, magic2, munte, euclid, banda, biliard, fractie1, fotbal, arctir, orientare, rege, fibo1, piatra, war, aritm, ssmax, sirmax, ikebana, domino2, lant1, parc1, cubulete, biperm, triunghi6, stiva1
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, kafka, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, furnici, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, xor1, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, numar5, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, tetris3, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, colina, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
surse trimise | ajutor