Pagini recente »
Cod sursă (job #118072)
Cod sursă (job
#118072)
#include <fstream>
#include <algorithm>
#define Dmax 9182
using namespace std;
ifstream fin ("lalele.in");
ofstream fout ("lalele.out");
typedef struct { int st, dr, val; } art;
int N, d, x, nr, V[5000010];
char parse[Dmax + 16], *now;
void Verif()
{
if (*now == NULL)
{
fin.get(parse, Dmax, '\0');
now = parse;
}
}
int Get()
{
while (*now < '0' || *now > '9')
{
now++;
Verif();
}
int number = 0;
while (*now >= '0' && *now <= '9')
{
number = number * 10 + *now - '0';
now++;
Verif();
}
return number;
}
int main()
{
now = parse;
Verif();
N = Get();
while(N > 0)
{
d = Get(); x = Get();
if (x)
{
for (int j = 1; j <= nr; j++)
V[j] += d;
for (int j = 1; j <= d; j++)
V[++nr] = x++;
}
else
{
sort (V + 1, V + 1 + nr);
for (int j = 1; j <= d; j++)
{
int mij = (nr + 1) / 2;
if (nr & 1) fout << V[mij] + j << '\n';
else fout << V[mij + 1] + j << '\n';
nr -= mij;
}
for (int j = 1; j <= nr; j++)
V[j] += d;
}
N -= d;
}
fout.close();
return 0;
}