Nu aveti permisiuni pentru a descarca fisierul grader_test3.in
Cod sursa(job #274421)
| Utilizator | Data | 9 martie 2009 18:47:35 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
int v[50011],x[50011],n,i;
void merge(int p,int u){
if(p==u)return ;
int i,j,k,m=(p+u)>>1;
merge(p,m);
merge(m+1,u);
for(i=p,j=m+1,k=p;i<=m||j<=u;)
if(j>u||(v[i]<=v[j])&&i<=m)
x[k++]=v[i++];
else
x[k++]=v[j++];
for(i=p;i<=u;i++)
v[i]=x[i];
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
merge(1,n);
for(i=1;i<=n;i++)
printf("%d ",v[i]);
return 0;}
