传统题 1000ms 256MiB

薯条队列取名法

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

nn 根薯条,第 ii 根薯条的长度为 aia_i

现在你要从中选出三根薯条,并给它们组成一个"薯条小队"。为了让小队名字显得很有文化,三根薯条的长度之和必须能被 33 整除。

请问有多少种不同的选择方法?

两种选择不同,当且仅当选出的薯条下标集合不同。

Format

Input

第一行一个整数 n(3n2×105)n(3 \le n \le 2 \times 10^5)

第二行 nn 个整数 a1,a2,,an(0ai1018)a_1,a_2,\ldots,a_n(0 \le a_i \le 10^{18})

Output

输出一行一个整数,表示满足条件的三元组数量。

Samples

6
1 2 3 4 5 6
8

Note

样例说明:

这些数对 33 取模后的结果分别为:1 2 0 1 2 01 \ 2 \ 0 \ 1 \ 2 \ 0 余数为 0,1,20,1,2 的数各有 22 个。

选择一根余数为 00、一根余数为 11、一根余数为 22 的薯条即可,共有2×2×2=82 \times 2 \times 2 = 8 种选择。

江南程序设计竞赛联盟暑期多校训练·摸底赛

未参加
状态
已结束
规则
XCPC
题目
11
开始于
2026-7-13 12:00
结束于
2026-7-13 17:00
持续时间
5 小时
主持人
参赛人数
121