Pagini recente » Istoria paginii runda/tagalaibas | Cod sursa (job #2182225)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("nrtri.in");
ofstream out ("nrtri.out");
int v[801];
int n;
const int L=9;
int cautbin(int x)
{
int r=0, pas=1<<L;
while(pas!=0)
{
if(r+pas<n && v[r+pas]<=x)
{
r+=pas;
}
pas/=2;
}
return r;
}
int main()
{
int k, rez=0;
in>>n;
for(int i=0; i<n; i++)
{
in>>v[i];
}
sort(v, v+n);
for(int i=0; i<n-2; i++)
{
for(int j=i+1; j<n-1; j++)
{
k=cautbin(v[i]+v[j]);
if(k>j)
{
rez+=k-j;
}
}
}
out<<rez;
in.close();
out.close();
return 0;
}