Cod sursa(job #1567515)

Utilizator cernat.catallinFMI Cernat Catalin Stefan cernat.catallin Data 13 ianuarie 2016 14:06:44
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

#define trace(x) cerr << #x << ": " << x << '\n'
#define trace2(x, y) cerr << #x << ": " << x << "  " << #y << ": " << y << '\n'
#define debug(x) cerr << x << '\n'

using int64 = long long int;
using uint = unsigned int;
using uint64 = unsigned long long int;
using pii = pair<int, int>;
using pll = pair<int64, int64>;

const int nmax = 805;
int sides[nmax];
int n;

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


int main() {
    in >> n;
    for (int i = 0; i < n; ++i)
        in >> sides[i];

    sort(sides, sides + n);
    int result = 0;
    for (int i = 0; i < n; ++i)
        for (int j = i + 1; j < n; ++j) {
            auto x = upper_bound(sides + j + 1, sides + n, sides[i] + sides[j]);
            result += (x - (sides + j + 1));
        }
    out << result << '\n';

    return 0;
}