Cod sursa(job #1925410)

Utilizator dragostanTantaru Dragos Constantin dragostan Data 13 martie 2017 09:39:08
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
const int DIM = 1205;
int pas = 1 << 10;
int sir[DIM];
int main()
{
    int n, rz = 0, d;
    in >> n;
    for(int i = 1; i <= n; ++i)
    {
        in >> sir[i];
    }
    sort(sir + 1, sir + n + 1);
   /* for(int i = 1; i <= n; ++i)
    {
        cout << sir[i] << ' ';
    }
    cout << endl;*/
    for(int i = 1; i < n; ++i)
    {
        for(int j = i + 1; j <= n; ++j)
        {
            pas = 1 << 10;
            d = 1;
            while(pas)
            {
                if(sir[d + pas] <= sir[i] + sir[j] && d + pas <= n) d += pas;
                pas /= 2;
            }
            rz+= d - j;
          //  cout << i << ' ' << j << ' ' << d << endl;
        }

    }
    out << rz << '\n';
    return 0;
}