Cod sursa(job #780389)

Utilizator idomiralinIdomir Alin idomiralin Data 20 august 2012 14:37:26
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
# include <cstdio>

using namespace std;

int a[500005], c[500005], n;
void interc(int st, int mij, int dr)
{int i,j,ct,t;
     
     i = st; j = mij + 1; ct = 0;
     while (i <= mij && j <= dr)
     {
           if (a[i] < a[j]) c[++ct] = a[i++];
                        else c[++ct] = a[j++];
                        } 
     
     while (i <= mij) c[++ct] = a[i++];
     
     while (j <= dr) c[++ct] = a[j++];
     
     t = st;
     for (i = 1; i <= ct; i++) 
         a[t++] = c[i];
         
         }

void divimp(int st, int dr)
{
     if (st < dr){
            int mij = (st + dr) / 2;
            divimp(st,mij);
            divimp(mij + 1,dr);
            interc(st,mij,dr);
            }
     }

int main()
{int i;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    
    scanf("%d",&n);
    
    for (i = 1; i <= n; i++)
        scanf("%d",&a[i]);
        
    divimp(1,n);
    
    for (i = 1; i <= n; i++)
        printf("%d",a[i]);
        
return 0;
}