Pagini recente » Cod sursa (job #2408138) | Cod sursa (job #2907612) | Cod sursa (job #1158536) | Cod sursa (job #2653745) | Cod sursa (job #361359)
Cod sursa(job #361359)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{ int i,mij,st,dr,sol=0,n,v[100],j,ok;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
f>>n;
for (i=1;i<=n;i++) f>>v[i];
sort (v+1,v+1+n);
for (i=1;i<=n-2;i++){
for (j=i+1;j<=n-1;j++){
st=j+1;
dr=n; ok=0;
while (st<dr) {
mij=(st+dr)/2;
if ((v[mij]<=v[j]+v[i] && (v[mij+1]>v[i]+v[j])) || mij==n){ok=1; break;}
else if (v[mij]>v[i]+v[j]) dr--;
else st++;
}
if (ok==1) sol+=mij-j;
else if (ok==0 && dr==n && v[dr]<=v[j]+v[i]) sol++;
}
}
g<<sol;
f.close();
g.close();
return 0;
}