Pagini recente »
Cod sursă (job #786485)
|
Istoria paginii utilizator/izabelasirbu
|
Istoria paginii utilizator/denisa1204
|
Istoria paginii utilizator/botezatu15
|
Cod sursă (job #363411)
Cod sursă (job
#363411)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
int main()
{
int n,i,z,x,j;
ifstream f("lalele.in");
ofstream g("lalele.out");
f>>n;
int a[n],w;
i=0;
while (!f.eof())
{
f>>z;
f>>x;
if (x!=0)
{
x++;
for (j=i+1;j<=i+z;j++)
{
a[j]=x;
x++;
}
for (j=1;j<=i;j++)
a[j]=a[j]+z;
j=i+1;
i=i+z;
cout<<i<<"\n";
//for (j=1;j<=i;j++)
//cout<<a[j]<<" ";
//cout<<"\n";
}
else
{
quickSort(a,1,i);
for (j=1;j<=i;j++)
cout<<a[j]<<" ";
cout<<"\n";
while (z>0)
{
if (i%2==0)
{
i=i/2;
g<<a[i+1]<<"\n";
for (j=1;j<=i;j++)
a[j]++;
}
else
{
i=i/2+1;
g<<a[i]<<"\n";
i--;
for (j=1;j<=i;j++)
a[j]++;
}
z--;
}
}
}
f.close();
g.close();
return 0;
}