Pagini recente » Cod sursa (job #1428852) | Cod sursa (job #1220856) | Cod sursa (job #3149979) | Cod sursa (job #1409196) | Cod sursa (job #1180630)
#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;
}