Cod sursa(job #1004594)

Utilizator IancuDanielIancu Daniel Constantin IancuDaniel Data 3 octombrie 2013 10:59:28
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>
using namespace std;
int N, s, s2, x, r, r2, l, l2;

int main() {
   FILE *in = fopen("ssm.in", "r"), *out = fopen("ssm.out", "w");
   fscanf(in, "%d", &N);
   l = 1;
   for (int i = 1; i <= N; i++) {
      fscanf(in, "%d", &x);
      if (s + x < 0) {
         s = 0;
         l = i + 1;
         r = i;
      }
      else {
         if (s + x < s && s > s2) {
            s2 = s;
            l2 = l;
            r2 = r;
         }
         s += x;
         r++;
      }
   }
   if (s < s2) {
      s = s2;
      l = l2;
      r = r2;
   }
   fprintf(out, "%d %d %d", s, l, r);
}