Pagini recente » Cod sursa (job #3287037) | Cod sursa (job #2818980) | Cod sursa (job #898238) | Cod sursa (job #2481318) | Cod sursa (job #2267628)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
const int N = 801, L = 9;
int v[N], n;
int NrTri(int s, int poz)
{
int r = poz, pas = 1<<L;
while(pas!=0)
{
if(v[r+pas]<=s && r+pas<=n)
{
r+=pas;
}
pas/=2;
}
return (r-poz);
}
int main()
{
f >> n;
for(int i=1; i<=n; i++) f >> v[i];
sort(v+1, v+n+1);
int nr=0;
//cout << NrTri(7, 4);
for(int i=1; i<n ;i++)
{
for(int j=i+1; j<=n; j++)
{
int s = v[i]+v[j];
//cout << v[i] << ' ' << v[j] << '\n';
nr += NrTri(s, j);
}
}
g << nr;
return 0;
}