Cod sursa(job #512768)

Utilizator ms-ninjacristescu liviu ms-ninja Data 14 decembrie 2010 16:05:20
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.68 kb
#include <fstream>
#include <algorithm>
using namespace std;

int v[10001], a[7], c[7];
int main()
{
	long n, i, min1, min0, re, re1, j;
	ifstream fin("loto.in");
	ofstream fout("loto.out");
	
	fin>>n;
	
	for(i=1;i<=n;++i)
		fin>>v[i];
	sort(v, v+n+1);
	for(i=1;i<=6;++i)
		fin>>a[i];
	
	sort(a, a+7);
	int f=0;
	
	
	
			min0=9999;
			min1=9999;
			
			
			for(j=1;j<=n;++j)
				if(abs(v[j]-a[1])<min1 && v[j]-a[1]!=0)
				{
					min1=abs(v[j]-a[1]);
					re1=v[j];
				}
			for(i=1;i<=n;++i)
				if(v[i]==re1)
				{
					v[i]=0;
					break;
				}
				
				
				c[5]=re1;
			
	
	
	for(i=2;i<=5;++i)
	{
		int ok=0;
		for(j=1;j<=n;++j)
			if(a[i]==v[j])
			{
				ok=1;
				break;
			}
		if(ok==1)
		{
			v[j]=0;
			//fout<<a[i]<<" ";
			c[f]=a[i];
			++f;
		}
		else
		{
			min0=9999;
			min1=9999;
			
			for(j=1;j<=(n+1)/2;++j)
				if(abs(a[i]-v[j])<min0)
				{
					min0=abs(a[i]-v[j]);
					re=v[j];
				}
			for(j=(n+1)/2;j<=n;++j)
				if(v[j]-a[i]<min1)
				{
					min1=v[j]-a[i];
					re1=v[j];
				}
		
		
				if(min1>min0)
				{
					//fout<<re <<" ";
					c[f]=re;
					++f;
				}
				else
					if(min1<min0)
					{
						//fout<<re1 <<" ";
						c[f]=re1;
						++f;
					}
				else
					if(min1==min0)
					{
						c[f]=re1;
						++f;
					}
		
		}
	}
	
	
	
	min1=9999;
			for(j=1;j<=n;++j)
			{
				if(abs(v[j]-a[6])<min1 && abs(v[j]-a[6])!=0)
				{
					
					min1=abs(v[j]-a[6]);
					re1=v[j];
				}
				else
					if(abs(v[j]-a[6])==min1)
						if(v[j]>re1)
							re1=v[j];
			}
				
				c[6]=re1;
	
	
	
	
	sort(c, c+7);
	for(i=1;i<=6;++i)
		fout<<c[i]<<" ";
	return 0;
}