Cod sursa(job #2444712)

Utilizator CostiVVoicu Costi CostiV Data 1 august 2019 10:20:41
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <algorithm>
using namespace std;

int main (){
    int n;
    cin >> n;
    int i, v[1001];
    for (i = 1; i <= n; ++i)
        cin >> v[i];
    sort(v + 1, v + n + 1);
    int C = 0, j, s;
    for (i = 1; i <= n - 2; ++i)
        for (j = i + 1; j < n; ++j){
                s = v[i] + v[j];
                int st = j + 1, dr = n, mid;
                int nr_rep = 0;
                while (st <= dr){
                    mid = (st + dr) / 2;
                    if (v[mid] == s){
                        nr_rep = mid - 1;
                        break;
                    }
                    else{
                        if (v[mid] < s){
                            st = mid + 1;
                            nr_rep = mid;
                        }
                        else
                            dr = mid - 1;
                    }
                }
                cout << v[i] << " " << v[j] << " " << v[mid] << endl;
                C += (nr_rep - j);
        }
    if (C < 0)
        C *= -1;
    cout << C;
    return 0;
}