Cod sursa(job #1202906)
| Utilizator | Data | 30 iunie 2014 01:23:02 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
#define DIMN 805
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n, s, st, dr, mid, sol;
int v[DIMN];
int main () {
f >> n;
for (int i=1; i<=n; ++i)
f >> v[i];
for (int i=1; i<=n-2; ++i)
for (int j=i+1; j<=n-1; ++j) {
st = 1; dr = n;
s = v[i] + v[j];
while (st <= dr) {
mid = st + dr;
mid >>= 1;
if (v[mid] > s)
dr = mid - 1;
else
st = mid + 1;
}
sol += dr - j;
}
g << sol;
return 0;
}
