Cod sursa(job #1180026)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 29 aprilie 2014 20:22:29
Problema Medie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("medie.in");
ofstream out("medie.out");
int v[10000],n;
long long sol;

int bin_search(int left,int right,int val)
{
    int mid;
    while(left <= right)
    {

        mid = (left+right)/2;
        if(val >= v[mid]) left = mid+1;
        else right = mid-1;
    }
    return right;
}

int main()
{

    in>>n;
    int i;
    for(i = 1 ; i <= n ; i++)
        in>>v[i];
    int j,nr;
    for( i = 1 ; i <= n ; i++)
        for(j = i+1 ; j <= n ; j++)
    {
        if((v[j] + v[i])%2 == 0){
         nr = bin_search(1,n,(v[j]+v[i])/2);
         cout<<nr<<"\n";
         if(v[nr] == (v[j] + v[i])/2) sol+=nr-j;
        }
    }
    out<<sol*3;
    return 0;
}