import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N,p=0,n=0,temp,count=0;
N=sc.nextInt();
ArrayList<Integer> pl=new ArrayList<Integer>();
ArrayList<Integer> nl=new ArrayList<Integer>();
for(int i=0;i<N;i++){
temp=sc.nextInt();
if(temp<0){
nl.add(temp);
}else{
pl.add(temp);
}
}
Collections.sort(nl,Collections.reverseOrder());
Collections.sort(pl);
while(p<pl.size()&&n<nl.size()){
temp=pl.get(p)+nl.get(n);
if(temp==0){
count++;
p++;
n++;
}else if(temp>0){
n++;
}else{
p++;
}
}
System.out.print(count);
sc.close();
}
}
这题的解法并不是重点,主要是如果使用List作为容器实体化LinkedList类,则可以使用使用sort方法进行排序,但是默认的sort方法是通过this.toArray()方法实现的。因此在不频繁增删的情况下,即使要经常排序,也应使用ArrayList而不是LinkedList。