#include <bits/stdc++.h>
using namespace std;
int main()
{
int N, k, s=0, ma=-10000, z=0;
cin>>N>>k;
int vet[N];
for(int i=0; i<N; i++)
{
cin>>vet[i];
}
for(int i=0; i<N; i++)
{
s+=vet[i];
z++;
if(z==k)
{
if(ma<s)
{
ma=s;
}
s=0;
z=0;
i=i-(k-1);
}
}
cout<<ma;
}
Salve, il problema di questo codice non è semplificare ma sono 2 piccole cose:
- Sicuro/a che -10000 sia il valore più basso raggiunto dalla somma dei muffin? Cosa succederebbe se avessi N = 10^6 mufffin con K = N tutti con un valore di −1000 ?
- La tua soluzione è O(N * K) ed è troppo lenta per ottenere il punteggio pieno. Devi optare per una soluzione O(N) oppure O(N log N).