Cod sursa(job #1766305)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 27 septembrie 2016 20:23:49
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include<algorithm>

using namespace std;
int bat3(int st, int fn, int sum);
int t[900];
int main()
{
    long long k=0,m,n,sum;
    int i,j;
    ifstream in("nrtri.in");
    ofstream out("nrtri.out");
    in>>n;
    for (i=1;i<=n;i++){
        in>>t[i];
    }
    sort(t+1,t+1+n);
    for(i=1;i<=n-2;i++){
        for(j=i+1;j<=n-1;j++){
           sum=t[i]+t[j];
            m=bat3(j+1,n,sum);
            k=k+(m-j);
        }
    }
    out<<k;


    return 0;
}
int bat3(int st,int fn, int sum){
    int pivot;
    while (fn>=st){
    pivot=(st+fn)/2;
    if (t[pivot]<=sum){
         st=pivot+1;
    }
    else{
        fn=pivot-1;
    }
    }

return st-1;
}