Pagini recente » Cod sursa (job #473111) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2241353)
#include<iostream>
#include<fstream>
#include <algorithm>
using namespace std;
int v[801];
int n;
int nrtri=0;
int twoSum(int sum)
{
int result=0;
for(int i=0;i<n;i++)
{
int left=0;
int right=n;
int mid;
while(left<right)
{
mid=(left+right)/2;
if(v[i]+v[mid]<sum)
{
left=mid;
}
else if(v[i]+v[mid]>sum)
{
right=mid;
}
else
{
result++;
}
}
}
return result;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>v[i];
}
sort(v,v+n);
for(int i=0;i<n;i++)
{
for(int j=v[i];j<v[n-2]+v[n-1];j++)
{
cout<<twoSum(j);
nrtri+=twoSum(j);
}
}
cout<<nrtri;
}