Cod sursa(job #1004666)

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

int main() {
   FILE *in = fopen("ssm.in", "r"), *out = fopen("ssm.out", "w");
   int n, pm = -2147483647, m = -2147483647, pms = 0, ms = 0, pme = 0, me = 0;
   fscanf(in, "%d", &n);
   for (int i = 1; i <= n; i++) {
      int x;
      fscanf(in, "%d", &x);
      if (pm + x >= x) {
         pm += x;
         pme++;
      }
      else {
         if (x > pm) {
            pm = x;
            pms = pme = i;
         }
      }
      if (pm > m) {
         m = pm, ms = pms, me = pme;
      }
   }
   fprintf(out, "%d %d %d", m, ms, me);
}