#include<bits/stdc++.h>
using namespace std;
//本代码考虑了可能出现重复的数的情况
int main(void)
{
int n,x;
map<int,int> mp;//映射: 键:数字 值:出现的次数
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
if(mp.find(x)==mp.end())//mp.find()==mp.end()说明没有找到
{
mp[x]=1;
}
else
{
mp[x]++;
}
}
map<int,int>::iterator it;//mp类型的迭代器
int ans=0;
for(it=mp.begin();it!=mp.end();it++)//遍历映射
{
if(it->first>0&&mp.find(-(it->first))!=mp.end())//it->first访问键 it-second访问值
{
ans+=mp[it->first]*mp[-(it->first)];//正数个数*对应的负数个数
}
}
cout<<ans<<endl;
return 0;
}