Cod sursa(job #241704)

Utilizator alexch16Chelariu Alexandru alexch16 Data 10 ianuarie 2009 19:03:10
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <stdio.h>

#define MAX 50000

FILE *intrare, *iesire;

int n, k, v[MAX];

void citire();
void rez();

int main()
{
    iesire = fopen("secv2.out", "w");
    citire();
    rez();
    fclose(iesire);
    return 0;
}

void citire()
{
  intrare = fopen("secv2.in", "r");
  fscanf(intrare, "%d %d", &n, &k);
  int i;
  
  for(i=1; i<=n; i++)
    fscanf(intrare, "%d", &v[i]);
    
  fclose(intrare);
}

void rez()
{
   int in, sf, sum, sumf, ko, i;

   sum = sumf = ko = 0;
   in = sf = 0;

   for(i=1; i<=n; i++)
   {
       if(ko == 0)
           in = i;
      
       if(v[i] > 0)
           sum += v[i], ko++;
       if(v[i] < 0)
       {
           if(sum + v[i] + v[i+1] > sum)
               sum += v[i], ko++;
           else if(ko >= k)
           {
               sumf = sum;
               sum = 0;
               sf = i-1;
               ko = 0;
           }
       }
   }

   fprintf(iesire, "%d %d %d", in, sf, sumf);
}