Pagini recente » Cod sursa (job #1341756) | Cod sursa (job #918672) | Cod sursa (job #2859477) | Cod sursa (job #242264) | Cod sursa (job #477057)
Cod sursa(job #477057)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define MAXN 802
#define LMAX 30002
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int x[MAXN],n,i,j,k,tot,ms,md,mi,mic,mare,st,dr;
int main()
{
fin>>n;
for(i=1;i<=n;i++) fin>>x[i];
sort(&x[1],&x[n+1]);
for(i=1;i<n;i++) {
for(j=i+1;j<=n;j++) {
mare=x[i]+x[j];
ms=j+1; md=n;
while (ms+1<md) {
mi=(ms+md)>>1;
if (x[mi]<mare) {
ms=mi;
}
else if (mare<x[mi]) {
md=mi;
}
else break;
}
dr=mi;
while (x[dr]<=mare&&dr<=n) {dr++;} dr--;
if (x[dr]<=mare&&dr>j) {
tot+=dr-j;
}
}
}
fout<<tot<<"\n";
fout.close();
return 0;
}