Pagini recente » Cod sursa (job #809568) | Cod sursa (job #1228435) | Cod sursa (job #2982918) | Istoria paginii runda/bomba1/clasament | Cod sursa (job #203966)
Cod sursa(job #203966)
#include<fstream>
#include<algorithm>
using namespace std;
int a[1025], n;
int bsearch2(int st, int dr, int val) {
int i,pas=1;
for(i=st;i+pas<=dr&&a[i+pas]<=val;pas<<=1);
for(i=st;i<=dr&&pas;pas>>=1)
if(a[i+pas]<=val)
i+=pas;
return i+1;
}
int main(){
int i, nrtri=0,j;
ifstream f("nrtri.in");
f>>n;
for(i=0;i<n;i++)
f>>a[i];
f.close();
sort(a, a+n);
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
nrtri+=(bsearch2(j,n-1,a[i]+a[j])-j-1);
ofstream g("nrtri.out");
g<<nrtri<<'\n';
g.close();
return 0;
}