Pagini recente » Monitorul de evaluare | Clasament feofjeofnqefe | Istoria paginii utilizator/malexandru | Clasament noobzz | Cod sursa (job #1028051)
#include <iostream>
#include <cstdio>
#include <cmath>
FILE *f,*g;
using namespace std;
int main(){
f=fopen("date.in","r");
g=fopen("date.out","w");
long n,V[50000],A[50000],B[50000],k,p=1,kk=0,min=32000,pp=0,i,j,l;
fscanf(f,"%d",&n);
k=sqrt(n);
for(i=1;i<=n;i++)
{
if(p>k)
{
p=1;
kk++;
A[kk]=min;
min=32000;
}
fscanf(f,"%d",&V[i]);
p++;
if(V[i]<min)
{
min=V[i];
}
}
kk++;
A[kk]=min;
for(j=1;j<=n;j++)
{
min=32000;
for(i=1;i<=kk;i++)
{
if(A[i]<min)
{
min=A[i];
p=i;
}
}
pp++;
B[pp]=min;
int md,min2=32000;
md=k*(p-1)+1;
for(l=md;l<=md+k-1;l++)
{
if(V[l]<min2 && V[l]>min)
{
min2=V[l];
}
if(V[l]==min)
{
V[l]=32000;
}
}
A[p]=min2;
}
for(int j=1;j<=n;j++)
{
fprintf(g,"%d ",B[j]);
}
fclose(f);
fclose(g);
return 0;
}