Pagini recente » Cod sursa (job #2243617) | Cod sursa (job #633459) | Cod sursa (job #1325095) | Cod sursa (job #2293430) | Cod sursa (job #2774731)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("medie.in");
ofstream fout("medie.out");
int n,i,suma,x,st,dr,mij,nr,j,indice1,indice2;
vector <int> v;
int main()
{
fin>>n;
for(i=0;i<n;i++){
fin>>x;
v.push_back(x);
}
sort(v.begin(),v.end());
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
suma = v[i] + v[j];
st = 1;
dr = n - 1;
while(st <= dr){
mij = (st + dr) / 2;
if(2 * v[mij] == suma){
if(mij != i && mij != j)
nr++;
break;
}
else if(2 * v[mij] > suma)
dr = mij - 1;
else
st = mij + 1;
}
indice1 = mij + 1;
indice2 = mij - 1;
while(2 * v[indice1] == suma){
if(indice1 != i && indice1 != j)
nr++;
indice1++;
}
while(2 * v[indice2] == suma){
if(indice2 != i && indice2 != j)
nr++;
indice2--;
}
}
}
fout << nr;
return 0;
}