Pagini recente »
vaslui_cls9_16.11
|
Statistici Iovu Nicolae (Iovu_Nicolae)
|
Monitorul de evaluare
|
vaslui_cls6_04.03
|
Cod sursă (job #134421)
Cod sursă (job
#134421)
#include <fstream>
#include <cstdio>
#include <algorithm>
using namespace std;
ofstream g("lalele.out");
long n,i,j,x,y,h[5000006],zi[5000006],day,nr;
int main()
{
freopen("lalele.in","r",stdin);
scanf("%ld",&n);
while (n>0)
{
scanf("%ld%ld",&x,&y);
n-=x;
if (y!=0)
{
for (i=1;i<=x;i++)
{
day++;
nr++;
zi[nr]=day;
h[nr]=y;
}
}
else
{
for (i=1;i<=nr;i++)
{
h[i]+=day-zi[i];
zi[i]=day;
}
for (i=1;i<=x;i++)
{
day++;
nth_element(h+1,h+nr/2+1,h+nr+1);
nr=nr/2;
g<<h[nr+1]+day-zi[nr+1]<<'\n';
}
}
}
g.close();
return 0;
}
/*#include <fstream>
#include <cstdio>
#include <vector>
using namespace std;
ofstream g("lalele.out");
long n,i,x,y,zi;
struct ab{
long zi,h;
};
vector<ab> heap;
ab aux;
void up(long nod)
{
ab aux;
if (nod==1)
return ;
if (heap[nod].h+zi-heap[nod].zi>heap[nod/2].h+zi-heap[nod/2].zi)
{
aux=heap[nod];
heap[nod]=heap[nod/2];
heap[nod/2]=aux;
up(nod/2);
}
}
void down(long nod)
{
ab aux;
if (nod*2>heap.size())
return ;
if (nod*2+1<heap.size())
{
if (heap[nod*2].h+zi-heap[nod*2].zi<heap[nod*2+1].h+zi-heap[nod*2+1].zi && heap[nod*2+1].h+zi-heap[nod*2+1].zi> heap[nod].h+zi-heap[nod].zi)
{
aux=heap[nod];
heap[nod]=heap[nod*2+1];
heap[nod*2+1]=aux;
down(nod*2+1);
}
else if (heap[nod*2].h+zi-heap[nod*2].zi>heap[nod].h+zi-heap[nod].zi)
{
aux=heap[nod];
heap[nod]=heap[nod*2];
heap[nod*2]=aux;
down(nod*2);
}
}
else if (heap[nod*2].h+zi-heap[nod*2].zi>heap[nod].h+zi-heap[nod].zi)
{
aux=heap[nod];
heap[nod]=heap[nod*2];
heap[nod*2]=aux;
down(nod*2);
}
}
int main()
{
freopen("lalele.in","r",stdin);
scanf("%ld",&n);
i=0;
aux.zi=13;
aux.h=13;
heap.push_back(aux);
while (i<n)
{
scanf("%ld%ld",&x,&y);
if (y!=0)
{
for (int j=1;j<=x;j++)
{
zi++;
aux.zi=zi;
aux.h=y;
heap.push_back(aux);
up(heap.size()-1);
}
i+=x;
}
else
{
for (int k=1;k<=x;k++)
{
zi++;
y=heap.size()/2;
for (int j=1;j<=y;j++)
{
if (j==y)
g<<heap[1].h+zi-heap[1].zi<<'\n';
heap[1]=heap[heap.size()-1];
heap.pop_back();
down(1);
}
}
i+=x;
}
}
g.close();
return 0;
}
*/