Codeforces Beta Round 95 (Div. 2) |
---|
Закончено |
Всем известно, что противоположности притягиваются. Брачное агентство «Паросочетание» работает по этому признаку. Каждого зарегистрированного клиента сотрудники «Паросочетания» классифицировали по его интересам, i-ому клиенту было назначено число ti ( - 10 ≤ ti ≤ 10). Конечно, одно и то же число может быть назначено более чем одному клиенту.
В качестве рекламы «Паросочетание» хочет опубликовать количество пар противоположных клиентов, то есть таких, у которых значение параметра t противоположно. Клиент может входить в пару произвольное количество раз. Помогите агентству и напишите программу, которая по заданной последовательности t1, t2, ..., tn найдет искомое количество. Например, если t = (1, - 1, 1, - 1), то любые два элемента ti и tj образуют пару, если i и j имеют разную четность. Следовательно, в этом случае искомое количество равно 4.
Конечно, клиент не может образовывать пару с самим собой.
В первой строке входных данных содержится целое число n (1 ≤ n ≤ 105) — количество зарегистрированных клиентов «Паросочетания». Вторая строка содержит последовательность целых чисел t1, t2, ..., tn ( - 10 ≤ ti ≤ 10), ti — параметр i-го клиента, присвоенный по результатам анализа его интересов.
Выведите количество пар клиентов с противоположными t. Числом, противоположным для x является число - x (0 противоположен сам себе). Пары, отличающиеся только порядком клиентов, считаются одинаковыми.
Учтите, что ответ на задачу может быть довольно большим, поэтому необходимо использовать 64-битный целый тип для вычислений. Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-битных чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
5
-3 3 0 0 3
3
3
0 0 0
3
В первом примере пары противоположных клиентов: (1,2), (1,5) и (3,4).
Во втором примере любая пара клиентов — противоположна.
Название |
---|