Cod sursa(job #265523)

Utilizator warangeldinu sorin warangel Data 23 februarie 2009 23:28:45
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
int main()
{
   freopen("secv2.in","r",stdin);
   freopen("secv2.out","w",stdout);
   unsigned int n,i,poz,k;
   int v[50000],start[50000];
   long v2[50000];
   long max,saux;
   scanf("%u",&n);
   scanf("%u",&k);
   for(i=1;i<=n;i++)scanf("%d",&v[i]);
   v2[1]=v[1];start[1]=1;
	for(i=2;i<=n;i++)
   {
      if(v2[i-1]+v[i]>v[i])
   	{
         start[i]=start[i-1];
         v2[i]=v2[i-1]+v[i];
      }
      else
      {
         v2[i]=v[i];start[i]=i;
      }
   }
   max=-1250000000;poz=0;
   for(i=k;i<=n;i++)
      if(max<v2[i]&&i-start[i]+1>=k)
   	{
         max=v2[i];
         poz=i;
      }
   saux=0;
   if(poz==0)
   {
   	for(i=1;i<=n;i++)
	      saux+=v[i];
      poz=n;
      start[n]=1;
      v2[n]=saux;
   }
   printf("%d %u %ld",start[poz],poz,v2[poz]);
   return 0;
}