Pagini recente » Cod sursa (job #876691) | Cod sursa (job #2196265) | Cod sursa (job #1755405) | Cod sursa (job #2632664) | Cod sursa (job #751645)
Cod sursa(job #751645)
#include <fstream>
using namespace std;
int N;
int v[200010];
int deque;
int mare = -2000000000, pozmare, lgmare;
void Citire ()
{
int x;
ifstream fin ("buline.in");
fin >> N;
for (int i = 0; i < N; i++)
{
fin >> v[i] >> x;
if (x == 0) v[i] *= -1;
if (v[i] > mare)
{
mare = v[i];
pozmare = i;
lgmare = 1;
}
}
fin.close ();
}
void Business ()
{
int i, poz, lg;
for (i = 0; i < N; i++)
{
if (v[i] > 0) break;
}
poz = i;
lg = 0;
for (; i < N; i++)
{
deque += v[i];
lg++;
if (deque < 0)
{
deque = 0;
poz = i + 1;
lg = 0;
}
else
{
if (deque > mare)
{
mare = deque;
pozmare = poz;
lgmare = lg;
}
}
}
for (i = 0; i < poz; i++)
{
deque += v[i];
lg++;
if (deque < 0) break;
if (deque > mare)
{
mare = deque;
pozmare = poz;
lgmare = lg;
}
}
}
void Scriere ()
{
ofstream fout ("buline.out");
fout << mare << " " << pozmare + 1 << " " << lgmare;
fout.close ();
}
int main ()
{
Citire ();
Business ();
Scriere ();
return 0;
}