Pagini recente » Cod sursa (job #1061633) | Cod sursa (job #64792) | Cod sursa (job #836097) | Cod sursa (job #2239518) | Cod sursa (job #322036)
Cod sursa(job #322036)
#include <stdio.h>
#include <algorithm>
#define N 9500
#define P 10
using namespace std;
int n,v[N],maxim;
long long rez;
char t[P];
void citire()
{
scanf("%d\n",&n);
int i,j,nr;
for (i=1; i<=n; i++)
{
nr=0;
fgets(t+1,P,stdin);
for (j=1; t[j] && t[j]>='0' && t[j]<='9'; j++)
nr=nr*10+t[j]-'0';
v[i]=nr;
if (nr>maxim)
maxim=nr;
}
sort(v+1,v+n+1);
}
int cbin(int x,int y)
{
int st=y,dr=n,m;
while (st!=dr)
{
m=(st+dr+1)/2;
if (x>=v[m])
st=m;
else
dr=m-1;
}
if (x==v[st])
return st;
return -1;
}
void rezolvare()
{
int i,j,t,k;
for (i=1; i<n; i++)
for (j=i+1; j<=n; j++)
{
t=cbin(2*v[j]-v[i],j);
if (t!=-1)
{
if (t!=i && t!=j)
rez++;
for (k=t-1; k>=1 && v[k]==v[t]; k--)
if (k!=i && k!=j)
rez++;
}
}
printf("%lld\n",rez);
}
int main()
{
freopen("medie.in","r",stdin);
freopen("medie.out","w",stdout);
citire();
rezolvare();
return 0;
}