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
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.
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
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă