Pagini recente » Cod sursa (job #806790) | Cod sursa (job #879665) | Cod sursa (job #1403610) | Cod sursa (job #1656400) | Cod sursa (job #361371)
Cod sursa(job #361371)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{ int i,mij,st,dr,sol=0,n,v[900],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 dr++;
}
if (ok==1) {sol+=mij-j; g<<sol<<" "<<mij<<" "<<j<<" "<<v[i]<<" "<<v[j]<<" "<<v[mij]<<'\n';}
else if (ok==0 && dr==n && v[dr]<=v[j]+v[i]) {sol++; g<<sol<<" "<<dr<<" "<<v[i]<<" "<<v[j]<<" "<<v[dr]<<'\n';}
}
}
g<<sol;
f.close();
g.close();
return 0;
}