Cod sursa(job #2065187)

Utilizator dianamichesaRosu Diana Michesa dianamichesa Data 13 noiembrie 2017 15:45:41
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
const int N=801,L=10;
int n,cnt,v[N];
int f2(int a,int b)
{
    int pas=1<<L;
    int r=0;
    while(pas!=0){
        if(r+pas<=n && v[r+pas]<=a+b)
            r+=pas;
        pas/=2;
    }
    return r;
}
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
    sort(v+1,v+n+1);
    for(int i=1;i<n;i++)
    for(int j=i+1;j<=n;j++){
        int p=f2(v[i],v[j]);
        if(p>=j)
           cnt+=p-j;
    }
    g<<cnt;
    return 0;
}