Pagini recente » Cod sursa (job #836190) | Cod sursa (job #1679728) | Cod sursa (job #2213328) | Cod sursa (job #1330127) | Cod sursa (job #614048)
Cod sursa(job #614048)
#include<fstream.h>
#include<iostream.h>
int main ()
{
long n,pos,i,j,q,p,s,v[801],aux,mij,poz;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f.close();
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if(v[i]>v[j]) {
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
pos=0;
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++) {
s=v[i]+v[j];
p=j+1;
q=n;
poz=1;
while(p<=q) {
mij=(p+q)/2;
if(s<v[mij])
q=mij-1;
else if(s>v[mij]) {
p=mij+1;
poz=mij;
}
else {
poz=mij;
break;
}
}
while(v[poz]==v[poz+1]) poz++;
if(poz!=1)
pos=pos+poz-j;
}
g<<pos;
g.close();
return 0;
}