Pagini recente »
Istoria paginii runda/tema_1_cls7_2018
|
Istoria paginii runda/9c_tema10/clasament
|
Rating Laura Talaat (lauratalaat)
|
Statistici 7A Rosca Dinu (dinurosca03)
|
Cod sursă (job #495398)
Cod sursă (job
#495398)
#include <cstdio>
#include <algorithm>
#include <cstring>
#define Maxn 5000002
using namespace std;
int n, i, j, d, x, top, day, sum;
struct tulip
{
int x;
int y;
}st[Maxn];
void quicksort(int b, int e)
{
int i = b, j = e, piv = st[(b + e) / 2].x + day - st[(b + e) / 2].y;
while (i <= j)
{
while (st[i].x + day - st[i].y < piv && i <= e)
++ i;
while (st[j].x + day - st[j].y > piv && j >= b)
-- j;
if (i <= j)
swap(st[i], st[j]),
++ i,
-- j;
}
if (j > b) quicksort(b, j);
if (i < e) quicksort(i, e);
}
int main()
{
freopen("lalele.in", "r", stdin);
freopen("lalele.out", "w", stdout);
scanf("%d", &n);
while (n)
{
scanf("%d %d", &d, &x);
n -= d;
for (i = 1; i <= d; ++ i)
if (x)
{
st[++ top].x = x;
st[top].y = i + sum;
} else
{
day = i + sum;
quicksort(1, top);
printf("%d\n", st[(top + 2) / 2].x + day - st[(top + 2) / 2].y);
top = top / 2;
}
sum += d;
}
return 0;
}