Pagini recente »
Cod sursă (job #718708)
|
Borderou de evaluare (job #617811)
|
Borderou de evaluare (job #152092)
|
Cod sursă (job #357163)
|
Cod sursă (job #443424)
Cod sursă (job
#443424)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("lalele.in");
ofstream g("lalele.out");
unsigned long long n, d, v[5000001], zt, poz=0, i, x;
void actualizezvector(int plantatii)
{
for (int counter=1;counter<=plantatii;counter++)
{
v[counter]=v[counter]+1;
}
}
void swup(int a, int b)
{
int aux=v[a];
v[a]=v[b];
v[b]=aux;
}
int partition(int low, int high)
{
int pivot=v[high];
int counter=low-1;
for (int j=low;j<=high-1;j++)
{
if (v[j]<=pivot)
{
counter++;
swup(counter, j);
}
}
swup(counter+1, high);
return (counter+1);
}
void quickSort(int low, int high)
{
if (low<high)
{
int pi=partition(low, high);
quickSort(low,pi-1);
quickSort(pi+1, high);
}
}
int main()
{
f>>n;
while (zt<n)
{
f>>d>>x;
if (x!=0)
{
for (i=1;i<=d;i++)
{
zt++;
poz++;
v[poz]=x;
actualizezvector(poz);
}
}
else
{
zt+=d;
quickSort(1,poz);
for (i=1;i<=d;i++)
{
if (poz%2==0)
poz=poz-poz/2;
else
poz=poz-poz/2-1;
g<<v[poz+1]<<'\n';
actualizezvector(poz);
}
}
}
return 0;
}