Pagini recente » Cod sursa (job #3197609) | Cod sursa (job #1132633) | Cod sursa (job #1041335) | Cod sursa (job #2280799) | Cod sursa (job #614039)
Cod sursa(job #614039)
#include<fstream>
#include<iostream>
using namespace std;
int main ()
{
unsigned int 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();
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;
}