Pagini recente » Cod sursa (job #1223874) | Cod sursa (job #741565) | Cod sursa (job #2704400) | Cod sursa (job #3255448) | Cod sursa (job #461390)
Cod sursa(job #461390)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin; ofstream fout;
int a[810],i,j,k,n; long N;
int srch (int x,int y,long z) {
if (x==y) return x; else
if (x<y) {
int m=(x+y)/2;
if (a[m]<=z) return srch (m+1,y,z); else return srch (x,m,z);
}
}
int main () {
fin.open ("nrtri.in"); fout.open ("nrtri.out");
fin>>n;
for (i=0; i<n; i++) fin>>a[i];
sort (a,a+n);
srch (2,19,3);
for (i=0; i<n-2; i++)
for (j=i+1; j<n-1; j++) {
k=srch (j+1,n-1,a[i]+a[j]);
if (a[i]+a[j]<a[k]) k--;
N+=(k-j);
}
for (i=0; i<n; i++) fout<<a[i]<<" "; fout<<endl;
fout<<N<<endl;
fin.close (); fout.close ();
return 0;
}