Pagini recente » Cod sursa (job #2739630) | Borderou de evaluare (job #373669) | Cod sursa (job #1458421) | Cod sursa (job #2427270) | Cod sursa (job #2437304)
#include <bits/stdc++.h>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int v[805];
void ordonare(int n,int v[])
{
int aux;
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
int main()
{
int n,i,t,nr=0,msk,poz,s=0,j,lat;
in>>n;
for(t=1;t<=n;t++)
{
in>>v[t];
}
ordonare(n,v);
for(i=1;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
lat=v[i]+v[j];
poz=0;
for(msk=1<<30;msk>0;msk=msk/2)
if(poz+msk<=n&&v[poz+msk]<=lat)
poz=poz+msk;
if(poz>0)
s=s+(poz-j);
}
}
out<<s;
return 0;
}