Cod sursa(job #1149800)

Utilizator PaueyPaula Nicoleta Gradu Pauey Data 22 martie 2014 11:43:10
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int v[880];

int main()
{
    freopen("nrtri.in","r",stdin);
    freopen("nrtri.out","w",stdout);
    int n, nr = 0;
    scanf("%d",&n);
    for(int i = 1; i <= n; ++i) scanf("%d",&v[i]);
    sort(v + 1, v + n + 1);
    for(int i = 1; i <= n - 2; ++i)
      for(int j = i + 1; j <= n - 1; ++j){
         int st = j + 1, dr = n;
         int ans = j;
         while(st <= dr){
            int mij = (st + dr)/2;
            if(v[mij] <= v[i] + v[j]){
               ans = mij;
               st = mij + 1;
            }
            else dr = mij - 1;
         }
         nr = nr + ans - j;
    }
    printf("%d\n",nr);
    return 0;
}