Cod sursa(job #1022688)

Utilizator AdrianaMAdriana Moisil AdrianaM Data 5 noiembrie 2013 20:57:48
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

ifstream is("nrtri.in");
ofstream os("nrtri.out");

int n, x;
int cnt;
int suma;
vector<int> q;

int ASDGAF(int st);

int main()
{
    is >> n;
    q.push_back(0);
    for ( int i = 1; i <= n; ++i )
    {
        is >> x;
        q.push_back(x);
    }
    for ( int i = 1; i <= n - 2; ++i )
        for ( int j = i + 1; j <= n - 1; ++j )
        {
            suma = q[i] + q[j];
            cnt += ASDGAF(j);
        }
    os << cnt;
    is.close();
    os.close();
    return 0;
}

int ASDGAF(int st)
{
    int m, dr = n;
    int incep = st;
    bool gasit = false;
    while ( st <= dr )
    {
        m = ( st + dr ) / 2;
        if ( q[m] > suma )
            dr = m - 1;
        else
        {
            st = m + 1;
            gasit = true;
        }
    }
    return m - incep;
    return 0;
}