Cod sursa(job #2119783)
| Utilizator | Data | 1 februarie 2018 17:24:05 | |
|---|---|---|---|
| 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 fin ("nrtri.in");
ofstream fout ("nrtri.out");
int n, i, j, st, dr, sol, mid, s, v[801];
int main()
{
fin >> n;
for (i=1; i<=n; i++){
fin >> v[i];
}
sort (v + 1, v + n + 1);
for (i=1; i<=n-2; i++){
for (j=i+1; j<=n-1; j++){
s = v[i] + v[j];
st = j+1;
dr = n;
while (st <= dr){
mid = (st + dr)/2;
if (v[mid] <= s){
sol++;
dr = mid - 1;
break;
}
else
st = mid + 1;
}
}
}
fout << sol;
return 0;
}
