Pagini recente » Cod sursa (job #1786291) | Rating Costin Banu (costinbanu) | Cod sursa (job #644240) | Cod sursa (job #3276822) | Cod sursa (job #287202)
Cod sursa(job #287202)
#include <fstream>
#include <iostream>
using namespace std;
long findpoz(long elem, long a[], long n)
{
long right = n, left = 0;
int p = -1;
while(left<=right)
{
if(elem == a[left]) return left;
if(elem == a[right]) return right;
long mid = (left+right)/2;
if(elem<=a[mid]) right = mid-1;
else left = mid+1;
}
return left;
}
int main()
{
ifstream f("algsort.in");
ofstream f2("algsort.out");
long a[500001];
int n;
f>>n;
f>>a[0];
for(int i=1;i<n;i++)
{
long el;
f>>el;
if(el>=a[i-1]) a[i] = el;
else
{
long ind = findpoz(el,a,i-1);
for(int j=i;j>ind;j--) a[j] = a[j-1];
a[ind] = el;
}
}
cout<<findpoz(8,a,n-1);
for(int i=0;i<n;i++) f2<<a[i]<<" ";
f.close();
f2.close();
return 0;
}