Cod sursa(job #2419747)
Utilizator | Data | 9 mai 2019 12:40:50 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int n,v[1000], nr=0;
void cauta(int st, int dr, int s)
{
int init = st - 1;
while (st <= dr)
{
int mid = (st + dr) / 2;
if (v[mid] <= s)
st = mid + 1;
else
dr = mid - 1;
}
nr += dr - init;
}
int main()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
for (int i = 1; i <= n - 2; i++)
for (int j = i + 1; j <= n - 1; j++)
{
int s = v[i] + v[j];
cauta(j + 1, n , s);
}
fout << nr;
}