Cod sursa(job #497123)

Utilizator bora_marianBora marian bora_marian Data 1 noiembrie 2010 17:41:45
Problema Oite Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
struct nod{
	short int a,b;
	nod(){}
	nod(short int I,short int J){
	a=I;b=J;}
};
vector< nod >  v[1000008];
long long vec[1034],l;
int n,rez;
int main()
{
	 ifstream fin("oite.in");
	 ofstream fout("oite.out");
	 fin>>n>>l;
	 short int i,j;
	 for(i=1;i<=n;i++)
	    fin>>vec[i];
	 sort(vec+1,vec+n+1);   
     for(i=1;i<n;i++)
		for(j=i+1;j<=n;j++)
		{	
			long long a=vec[i]+vec[j];
			a=a%1000000;
			v[a].push_back(nod(i,j));
		}
	 for(i=1;i<n;i++)
	    for(j=i+1;j<=n;j++)
	    {
			long long a=vec[i]+vec[j];
			long long b=l-a;
			if(b>0)
			{  
			b=b%1000000;
			for(vector< nod >::iterator I=v[b].begin();I<v[b].end();++I)
			   if(a+vec[I->a]+vec[I->b] && j<I->a)
			       rez++;
			}      
	    }
	 fout<<rez;
	 return 0;    
}