Pagini recente » Cod sursa (job #177415) | Istoria paginii utilizator/vladcnejevici | Cod sursa (job #280130) | Istoria paginii jc2021/solutii/veverite | Cod sursa (job #614040)
Cod sursa(job #614040)
#include<fstream>
#include<iostream>
using namespace std;
int main ()
{
unsigned int n,pos,i,j,q,p,s,v[801],mij,poz;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f.close();
pos=0;
sort(v+1,v+n+1);
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 if(s==v[mij]) {
poz=mij;
break;
}
}
while(v[poz]==v[poz+1]) poz++;
if(poz!=1)
pos=pos+poz-j;
}
g<<pos;
g.close();
return 0;
}