Cod sursa(job #2241353)

Utilizator DragosSDragos Sarbu DragosS Data 15 septembrie 2018 16:42:46
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}