Informatică, întrebare adresată de andriesboss92, 9 ani în urmă

Fişierul text BAC.TXT conţine pe prima linie două numere naturale n şi k separat de un
spaţiu (3≤n≤10000, 2≤k≤n/2), iar pe a doua linie un şir de n numere naturale x1, x2, ...,xn separate prin câte un spaţiu, fiecare număr din acest şir având cel mult patru cifre.

a) Scrieţi un program C/C++ care citeşte numerele din fişier şi determină, utilizând o
metodă eficientă din punct de vedere al timpului de executare, cel mai mic indice i (1≤i≤nk+1) pentru care media aritmetică a numerelor xi, xi+1, ..., xi+k-1 este maximă. Programul afişează valoarea lui i pe ecran.

Exemplu: pentru fişierul alăturat
7 3
2 9 4 7 5 2 9
se afişează 2, deoarece media maximă se obţine pentru 9, 4, 7.

b) Explicaţi succint, în limbaj natural, metoda utilizată la punctul a, justificând eficienţa acesteia.

Răspunsuri la întrebare

Răspuns de ionutg38
3
a) in fisierul atasat
b)
Problema se rezolva direct de la citire prin calcululsumelor de cate k elemente consecutive si retinerea celei mai mari impreuna cu pozitia de inceput a secventei de suma maxima.
Anexe:

andriesboss92: Auzi, de ce ai pus in acel for " s=s-x[i]+x[j]; "?
Alte întrebări interesante