PROBLEME
On vous donne une liste de N nombres entiers et un entier K. Trouver la suite de K éléments consécutifs de la liste dont la somme soit la plus grande possible.
CONTRAINTES
- 1 <= K <= 100, où K est la taille de la suite d'éléments consécuífs à trouver.
- K <= N <= 10000, où N est le nombre d'éléments de la liste.
- 0 <= V <= 100000, où V est une valeur de la liste.
ENTREE
La première ligne contient l'entier N.
La deuxième ligne contient l'entier K.
Chacune des N lignes suivante contient un entier : un élément de la liste.
SORTIE
Vous devez afficher un entier sur la sortie : la plus grande somme qu'il est possible d'obtenir en additionnant K éléments consécutifs de la liste de nombres.
CODE SOURCE
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int N;
unsigned int K;
int val=0;
scanf("%d\n",&N);
scanf("%d\n",&K);
int* V=new int[N];
for(int i=0;i<N;i++)
scanf("%d\n",&V[i]);
for(int i=0;i<N-K;i++)
{
int a=0;
for(int j=0;j<K;j++)
a+=V[i+j];
if(a>val)
val=a;
}
printf("%d\n", val);
delete[] V;
return 0;
}
EXPLICATIONS
Pour écrire sur la sortie standard, on utilise la fonction printf().
Pour lire sur l'entrée standard, on utilise la fonction scanf().
|