Cod sursa(job #1754648)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 8 septembrie 2016 15:08:51
Problema Numarare triunghiuri Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

#include <algorithm>

using namespace std;

int n,i,v[810],j,p,u,m,s,k,ap;

ifstream fin ("nrtri.in");

ofstream fout ("nrtri.out");

int main (){

    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    sort (v+1, v+n+1);
    for (i=1;i<=n-2;i++)
        for (j=i+1;j<=n-1;j++){
            s = v[i] + v[j];
           /* p = 1;
            u = n;
            while (p<=u){
                m = (p+u)/2;
                if ( (v[m]<=s&&v[m+1]>s)||(v[m]<=s&&m==n)){
                    ap++;
                    break;
                }

                else{
                    if (v[m]<=s&&v[m+1]<=s)
                        p = m+1;
                    else
                        u = m-1;
                }
            }
*/
            for (k=j+1;k<=n;k++)
                if (v[i]+v[j] >= v[k] && v[i]+v[k]>=v[j] && v[j]+v[k] >= v[i])
                    ap++;
        }
    fout<<ap;

    return 0;
}