Cod sursa(job #1004657)

Utilizator IancuDanielIancu Daniel Constantin IancuDaniel Data 3 octombrie 2013 14:06:15
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
using namespace std;

int main() {
   FILE *in = fopen("ssm.in", "r"), *out = fopen("ssm.out", "w");
   int N, sa = -2147483647, sf = -2147483647, e = 0, sfe = 0, s = 0, sfs = 0;
   fscanf(in, "%d", &N);
   for (int i = 1; i <= N; i++) {
      int x;
      fscanf(in, "%d", &x);
      if (sa + x >= x) {
         sa += x;
         e++;
      }
      else {
         if (x > sa) {
            sa = x;
            s = e = i;
         }
      }
      if (sa > sf) {
         sf = sa, sfs = s, sfe = e;
      }
   }
   fprintf(out, "%d %d %d", sf, sfs, sfe);
}