Pagini recente » Cod sursa (job #2330190) | Cod sursa (job #669738) | Cod sursa (job #351119) | Cod sursa (job #2535901) | Cod sursa (job #1076345)
#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[100],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;
}