Cod sursa(job #1400746)
| Utilizator | Data | 25 martie 2015 13:44:54 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
short n, nr, st, dr, m;
int LG[30001], i, j, k;
int main()
{
f >> n;
for (i = 1; i <= n; i++)
f >> LG[i];
sort (LG+1, LG+n+1);
nr = 1;
for (i = 1; i < n; i++)
for (j = i+1; j <= n; j++)
{
st = i, dr = j;
while (st <= dr)
{
m = (st+dr)/2;
if (LG[dr] < LG[m] + LG[st])
st = m+1;
else
dr = m-1;
}
if (LG[dr] == LG[m]+LG[st])
nr++;
}
g << nr << "\n";
// g << M_PI;
return 0;
}
