1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Sランク・スキルチェック見本問題セット(言語選択)
  4. 問題一覧 C++編
  5. mod7占い C++編

Sランク・スキルチェック見本問題セットのサムネイル
mod7占い C++編(paizaランク S 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

あなたは今、「mod7占い」というサービスを始めようと考えています。

mod7占いとは、整数が書かれた複数のカードの中から3枚を選び、そこに書かれた整数の和が7で割り切れるかどうかで運勢を決めようというものです。 カードは必ず異なる3枚を選ぶ必要があり、全てのカードには全て異なる数字が書かれています。

占いというからには、7で割り切れる組み合わせはそれなりに少なくする必要があります。 そこで、適当な複数のカードに対して、カードに書かれた3つの整数を足した和が7で割り切れるような組合せがいくつあるかを計算するプログラムを作成してください。

入力される値

入力は以下のフォーマットで与えられます。

N
a_1
a_2
...
a_N

N は与えられるカードの枚数を表します。

a_i (1 ≦ i ≦ N) はi 枚目のカードに書かれた整数であり、改行区切りでN 個与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

組合せ数を一行に出力してください。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 100000
・0 ≦ a_i < 2^32

入力例1

3
10
4
14

出力例1

1

入力例2

10
1
2
3
4
5
6
7
8
9
10

出力例2

17

問題一覧へ戻る

ページの先頭へ戻る