Pagini recente » Cod sursa (job #692582) | Cod sursa (job #51123) | Cod sursa (job #1065329) | Cod sursa (job #584005) | Cod sursa (job #983218)
Cod sursa(job #983218)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
int n;
int *v[2];
f>>n;
for(int i=0;i<2;i++)
v[i]=new int[500001];
for(int i=1;i<=n;i++)
f>>v[0][i];
int q=1;
for(int l=1;(1<<(l-1))<n;l++){
q=1-q;
for(int i=1;i<=n;i+=(1<<l)){
int i1=i,j1=( i+(1<<(l-1)) < n+1 ? i+(1<<(l-1)) : n+1),i2=j1,j2=( i+(1<<l) < n+1 ? i+(1<<l) : n+1),t=i;
while(i1<j1||i2<j2){
if(i2>=j2||(i1<j1&&v[q][i1]<=v[q][i2]))
v[1-q][t++]=v[q][i1++];
else
v[1-q][t++]=v[q][i2++];
}
}
}
for(int i=1;i<=n;i++)
g<<v[1-q][i]<<" ";
return 0;
}
/*
#include <fstream>
#include <iomanip>
using namespace std;
FILE *f=fopen("date.in","r");
ofstream g("date.out");
int main()
{
int n,m;
fscanf(f,"%d%d",&n,&m);
int pr[100001],vm[100001],d[100001];
for(int i=1;i<n;i++){
int x,y,d1,v;
fscanf(f,"%d%d%d%d",&x,&y,&d1,&v);
if(x>y){
int ax=x;
x=y,y=ax;
}
pr[y]=x;
d[y]=d1;
vm[y]=v;
}
for(int i=1;i<=m;i++){
int x,y,vx;
fscanf(f,"%d%d%d",&x,&y,&vx);
if(x>y){
int ax=x;
x=y,y=ax;
}
double s=0;
while(x!=y){
while(y>x){
if(vx>vm[y]) s+=double(d[y])/vm[y];
else s+=double(d[y])/vx;
y=pr[y];
}
while(x>y){
if(vx>vm[x]) s+=double(d[x])/vm[x];
else s+=double(d[x])/vx;
x=pr[x];
}
}
g<<setprecision(3)<<fixed<<s<<'\n';
}
return 0;
}*/