Pagini recente » Monitorul de evaluare | Statistici Robert Plaiasu (Robertoo) | Statistici Berger Radu (RaduBradu) | Istoria paginii utilizator/zelionii97 | Cod sursa (job #1036136)
#include<iostream>
#include<fstream>
using namespace std;
int v[500001];
void m(int p,int u,int mij)
{
int i,j,k,a[250002],b[250002];
for (i=1,k=p;k<=mij;i++,k++) a[i]=v[k];
for (j=1;k<=u;j++,k++) b[j]=v[k];
int x=1,y=1;k=p;
while(x<i&&y<j)
{
if (a[x]<b[y]) v[k]=a[x++];
else v[k]=b[y++];
k++;}
while(x<i) {v[k]=a[x++];k++;}
while(y<j) {v[k]=b[y++];k++;};
}
void msort(int p,int u)
{
if((u-p)>=1)
{
int mij=(p+u)/2;
msort(p,mij);
msort(mij+1,u);
m(p,u,mij);
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int i,n;
f>>n;
for (i=1;i<=n;i++) f>>v[i];
msort(1,n);
for(i=1;i<=n;i++) g<<v[i];
f.close();g.close();
return 0;
}