Pagini recente »
Istoria paginii runda/simualare67
|
Clasament boooossssssssssss
|
Borderou de evaluare (job #483721)
|
Monitorul de evaluare
|
Cod sursă (job #258681)
Cod sursă (job
#258681)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f, *g;
int n, days, l;
int flori;
struct lalea
{
int h, d;
};
lalea lalele[5000001];
bool cmp(lalea a, lalea b)
{
int x = a.h + days - a.d;
int y = b.h + days - b.d;
return (x <= y ? true : false);
}
void plant()
{
lalele[++ flori].d = days;
lalele[flori].h = l;
}
void targ()
{
int mid;
sort(lalele + 1, lalele + flori + 1, cmp);
mid = flori / 2 + 1;
fprintf(g, "%d\n", lalele[mid].h + days - lalele[mid].d);
flori /= 2;
}
void solve()
{
f = fopen("lalele.in", "r");
int i, d, mid;
fscanf(f, "%d", &n);
g = fopen("lalele.out", "w");
while(n != 0)
{
fscanf(f, "%d%d", &d, &l);
n -= d;
for(i = 1; i <= d; i ++)
{
days ++;
if(l != 0)
plant();
else
targ();
}
}
fclose(f);
fclose(g);
}
int main()
{
solve();
return 0;
}