Pagini recente » Monitorul de evaluare | Cod sursa (job #2110890) | Monitorul de evaluare | Cod sursa (job #1779427) | Cod sursa (job #1796388)
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("a.in");
ofstream fout("a.out");
struct nod
{
int val;
nod *nxt;
}*p, *u;
int n;
long long v[200005], A[200005], M[200005], caut;
void citire()
{
cin>>n;
for(int i = 0; i < n; ++i)
{
cin>>v[i];
M[i] = v[i];
}
}
void sortare(int p, int u)
{
if(p < u)
{
int p1 = p;
int mid = (p + u) / 2 , mid1 = mid + 1, t, x = p1;
sortare(p,mid);
sortare(mid + 1,u);
while(p <= mid and mid1 <= u)
{
if(v[p] <= v[mid1])
{
A[x] = v[p];
++x;
++p;
}
else
{
A[x] = v[mid1];
++mid1;
++x;
}
}
while(p <= mid)
{
A[x] = v[p];
++x;
++p;
}
while(mid1 <= u)
{
A[x] = v[mid1];
++x;
++mid1;
}
for(int i = p1; i <= u; ++i)
{
v[i] = A[i];
}
}
}
void cautBin(int p, int u)
{
int mid = (p + u) / 2;
if(A[mid] == M[caut])
{
int p;
p = A[caut];
A[caut] = A[mid];
A[mid] = p;
}
else if(A[mid] < M[caut])
{
cautBin(mid + 1, u);
}
else
{
cautBin(p, mid - 1);
}
}
int main()
{
long long max1 = 0, nrmax1, e = 0;
citire();
sortare(0, n - 1);
for(int i = 0; i < n; ++i)
{
cout<<v[i]<<" ";
}
cout<<n - e;
}