import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.security.KeyStore.Entry;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author GodXie
*
*/
public class Main {
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StreamTokenizer st=new StreamTokenizer(reader);
static PrintWriter pw =new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
public static void main(String[] args) throws IOException {
int n = nextInt();
Map<Integer,Integer>map=new HashMap<>();
for(int i=0;i<n;i++)
{
int tmp=nextInt();
if(map.containsKey(tmp))
{
map.put(tmp, map.get(tmp)+1);
}
else
{
map.put(tmp, 1);
}
}
int count1=0,count=0;
int result=0;
for(Map.Entry<Integer, Integer>entry:map.entrySet()) {
int key=entry.getKey();
if(entry.getValue()>=2)
{
result=C(entry.getValue());
if(key%2==0&&map.containsKey(key/2)&&map.get(key/2)>1)
{
count1=C(map.get(key/2));
}
for(Map.Entry<Integer, Integer>entry1:map.entrySet())
{
int key1=entry1.getKey();
if(key1==key||key1*2==key)
{
continue;
}
if(map.containsKey(key-key1))
{
count+=map.get(key-key1)*map.get(key1);
}
}
}
}
System.out.println((count1+count/2)*result);
}
private static int C(int value) {
int result=1;
int min=1;
for(int i=value;i>2;i--)
{
result*=i;
}
for(int i=value-2;i>1;i--)
{
min*=i;
}
return result/min;
}
static int nextInt() {
try {
st.nextToken();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return (int)st.nval;
}
}
如果输入为 6 1 1 1 2 2 2答案是不是应该为3*3=9种?