問題一覧 > 通常問題

No.178 美しいWhitespace (1)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 64 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 483
作問者 : ぴろずぴろず
4 ProblemId : 424 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-06-25 01:00:53

問題文

太郎君は難解プログラミング言語であるWhitespaceでプログラムを作ることに熱中しています。
Whitespaceでは、スペース・タブ・改行のみを構文に使用し、その他は無視します。

太郎君はソースコードの美しさにこだわりがあり、ソースコードについて、すべての行の幅が等しい時に「完璧」と呼びます。
太郎君は自分の書いたWhitespaceのソースコードに全角スペースを挿入することで「完璧」にしようとしています。
太郎君がソースコードを「完璧」にするために必要な最小の全角スペースの数を求めるプログラムを作ってください。
ただし、ある行のスペースの数を$a$、タブの数を$b$、全角スペースの数を$c$としたとき、その行の幅は$(a + 4b + 2c)$とします。
普通のエディタとは異なり、タブの位置などは幅に影響しません。

入力

$N$
$a_1$ $b_1$
$\vdots$
$a_N$ $b_N$

$1$行目に太郎君が完璧にしたいソースコードの行数$N$が与えられます。
続く$N$行は、ソースコードの行ごとの情報です。$i$行目にはスペースが$a_i$個、タブが$b_i$個あることを表します。

$2 \leq N \leq 1000$
$0 \leq a_i, b_i \leq 10^7$
太郎君のソースコードにはスペース・タブ・改行以外の文字は含まれません。
太郎君のソースコードがWhitespaceの文法的に正しいとは限りません。

出力

太郎君がWhitespaceのソースコードを「完璧」にできる時、必要な最小の全角スペースの数を出力してください。
「完璧」にすることが出来ない時、$-1$を出力してください。
最後に改行してください。

サンプル

サンプル1
入力
2
1 1
3 0
出力
1

$1$行目はスペースが$1$個、タブが$1$個なのでで幅は$1 + 1 \times 4 = 5$です。
$2$行目はスペースが$3$個、タブは$0$個なのでで幅は$3 + 0 \times 4 = 3$です。
このままでは「完璧」でないですが、$2$行目に全角スペースを$1$個足せば全ての行の幅が$5$となり「完璧」になるので、$1$を出力します。

サンプル2
入力
4
0 0
0 0
0 0
0 0
出力
0

全ての行の幅ははじめから$0$で、すでに「完璧」です。
全角スペースを足す必要はないので、$0$を出力します。

サンプル3
入力
2
0 0
1 0
出力
-1

$1$行目の幅は$0$で、$2$行目の幅は$1$です。
どのように全角スペースを足しても「完璧」にできないので、$-1$を出力します。

サンプル4
入力
4
30 0
20 10
10 20
0 30
出力
90

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。