Pagini recente » Cod sursa (job #2254613) | Istoria paginii lot-2017/baraj-2 | Cod sursa (job #195665) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #643999)
Cod sursa(job #643999)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const int N=10005;
vector <double> b[N];
int v[N],n,minim,maxim;
void citire ()
{
int i,y;
double x;
ifstream in ("algsort.in");
in>>n;
minim=2147483647;
maxim=0;
for (i=0;i<n;i++)
{
in>>v[i];
if (v[i]>maxim) maxim=v[i];
if (v[i]<minim) minim=v[i];
}
for (i=0;i<n;i++)
{
x=(v[i]-minim);
x=x/(maxim-minim+1);
y=int (n*x);
b[y].push_back(x);
}
}
int cmp(double a,double b){
return a<b;
}
void sortare ()
{
int i,j,k;
double aux;
for (i=0;i<n;i++)
{
if (b[i].size()>=2)
for (j=0;j<=b[i].size()-2;j++)
for (k=j+1;k<=b[i].size()-1;k++)
sort(b[i].begin(),b[i].end(),cmp); }
}
int main()
{
int i,j;
double x;
ofstream out ("algsort.out");
citire();
sortare();
int k=0;
for (i=0;i<n;i++)
if (b[i].size()>=1)
for (j=0;j<b[i].size();j++)
out<<b[i][j]*(maxim-minim+1)+minim<<" ";
return 0;
}