Pagini recente » Atasamentele paginii Clasament eusebiu_oji_2015_cls9 | Cod sursa (job #990864) | Cod sursa (job #1726310) | Rating Ghenu Alina (allina28) | Cod sursa (job #214541)
Cod sursa(job #214541)
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAX_N 805
int V[MAX_N], S, Rez;
int N;
int b_search(int li, int lf)
{
while(li <= lf)
{
int m = li + ((lf - li) >> 1);
if((V[m] <= S && V[m + 1] > S) || (m == N))
return m;
if(V[m] < S || (V[m] == S && V[m + 1] == S))
li = m + 1;
else
lf = m - 1;
}
return N + 1;
}
void citire()
{
scanf("%d\n",&N);
for(int i = 1; i <= N; ++i)
scanf("%d",V+i);
}
void solve()
{
sort(V+1, V+N+1);
for(int i = 1; i < N; ++i)
for(int j = i + 1; j < N; ++j)
{
S = V[i] + V[j];
int nr = b_search(j + 1, N);
Rez += (N - nr + 1);
}
printf("%d\n",Rez);
}
int main()
{
freopen("nrtri.in","rt",stdin);
freopen("nrtri.out","wt",stdout);
citire();
solve();
}