Cod sursa(job #1180630)

Utilizator PaueyPaula Nicoleta Gradu Pauey Data 30 aprilie 2014 20:33:58
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <deque>
using namespace std;
deque <int> dq;
int v[400040];

int main()
{
    ifstream in("buline.in");
    ofstream out("buline.out");
    int n, bul, semn, smax = -10000, s = 0, p, l;
    in >> n;
    for(int i = 1; i <= n; ++i) {
         in >> bul >> semn;
         if(semn == 0) v[i + n] = v[i] = -bul;
         else v[i + n] = v[i] = bul;
    }
    int i = 1;
    while(dq.front() != i - n) {
      while(s < 0) {
         s = s - v[dq.front()];
         dq.pop_front();
      }
      dq.push_back(i);
      s = s + v[i];
      ++i;
      if(s > smax) {
         smax = s;
         p = dq.front();
         l = dq.back() - dq.front() + 1;
      }
    }
    out << smax << " " << p << " " << l;
    return 0;
}