Pagini recente » Cod sursa (job #1482516) | Cod sursa (job #605949) | Cod sursa (job #794172) | Cod sursa (job #171782) | Cod sursa (job #1429274)
#include <fstream>
#include <algorithm>
using namespace std;
int v[1005],n;
int loto[7];
int cautare(int x)
{
int s=1,d=n,mij;
if(x>v[n]) return v[n];
if(x<v[1]) return v[1];
while(s<=d)
{
mij=(s+d)/2;
if(x>v[mij]&&x<v[mij+1])
{
int a=x-v[mij],b=v[mij+1]-x;
if(a==b) return v[mij+1];
else if(a>b) return v[mij+1];
else return v[mij];
}
else if(v[mij-1]<x&&x<v[mij])
{
int a=x-v[mij-1],b=v[mij]-x;
if(a==b) return v[mij];
else if(a>b) return v[mij];
else return v[mij-1];
}
else if(x<v[mij]) d=mij-1;
else s=mij+1;
}
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int i;
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&v[i]);
for(i=1;i<=6;i++) scanf("%d",&loto[i]);
sort(loto+1,loto+7);
sort(v+1,v+1+n);
for(i=1;i<=6;i++)
{
for(int j=1;j<=n;j++)
{
if(v[j]==loto[i]) {while(j<n) v[j]=v[j+1],j++;n--;}
}
}
loto[1]=cautare(loto[1]);
for(i=1;i<=n;i++)
{
if(v[i]==loto[1]) while(i<n) v[i]=v[i+1],i++;
}
n--;
loto[6]=cautare(loto[6]);
sort(loto+1,loto+7);
for(i=1;i<=6;i++) printf("%d ", loto[i]);
}