Cod sursa(job #2629781)

Utilizator BarbumateiBarbu Matei Barbumatei Data 22 iunie 2020 17:16:55
Problema Numarare triunghiuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

int v[800],put;

int serch(int n, int i, int j){
    int st = 0, dr = n - 1, mij;
    while (st < dr) {
      mij = (st + dr + 1) / 2;
      if (v[i] + v[j] < v[mij]) {
        dr = mij - 1;
      }
      else {
        st = mij;
      }
    }
    return st;
}

int main()
{
    ifstream f("nrtri.in");
    ofstream g("nrtri.out");
    int n, i, j, u, cnt;
    f>>n;
    for(i=0; i<n; i++){
        f>>v[i];
    }
    sort(v, v+n);
    cnt=0;
    for(i=0;i<n-2;i++){
        for(j=i+1;j<n-1;j++){
            u=serch(n,i,j);
            if(u>j){
                cnt+=u-j;
            }
        }
    }
    g<<cnt<<'\n';
    f.close();
    g.close();
    return 0;
}