Pagini recente » Cod sursa (job #184140) | Cod sursa (job #359002) | Cod sursa (job #2494805) | Cod sursa (job #1031260) | Cod sursa (job #1076346)
#include<iostream>
#include<vector>
#include<algorithm>
#include<stdio.h>
using namespace std;
int nrcif(int x)
{
if(x<10)
return 1;
else
{
int nr=0;
int aux=x;
while(aux!=0)
{
nr++;
aux=aux/10;
}
return nr;
}
}
vector<int> v[10];
int main()
{
int a[500000],n,i,maxi,pas,div,p,l,j;
FILE *f,*g;
f=fopen("algsort.in","r");
g=fopen("algsort.out","w");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%d",&a[i]);
fclose(f);
maxi=*max_element(a,a+n);
pas=nrcif(maxi);
div=1;
for(i=0;i<pas;i++)
{
for(j=0;j<n;j++)
v[a[j]/div%10].push_back(a[j]);
p=0;
for(j=0;j<10;j++)
{
for(l=0;l<v[j].size();l++)
{
a[p]=v[j][l];
p++;
}
v[j].clear();
}
div=div*10;
}
for(i=0;i<n;i++)
fprintf(g,"%d",a[i]);
fclose(g);
return 0;
}