Problem:
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});

A: 秤 / Steelyard

問題文

情太くんは長さ $2L$ の棒を使って下の図のような秤を作った．

棒には等間隔に $2L+1$ 個の穴があけられ，左から順に $-L, -L+1, \cdots, -1, 0, 1, \cdots, L-1, L$ という番号が付けられている．そして $0$ 番の穴の場所を天井から紐で吊るしてある．

情太くんは，秤の穴に $N$ 個のおもりを吊るした．$i$ 番目のおもりを吊るした穴の番号は $x_i$ で，おもりの重さは $w_i$ である．おもりが $1$ つも吊るされない穴や，複数のおもりが吊るされる穴も存在しうる．

情太くんが吊るしたおもりによっては，秤が傾いているかもしれない．姉の立子さんは，追加でいくつかの重りを吊るすことで秤を水平にしたい (おもりの座標と重さ積の総和が $0$ になるとき秤は水平になる)．条件を満たすおもりの吊るし方を $1$ つ出力しなさい．候補が複数ある場合はどれを出力してもよい．

入力

$L$

$N$

$x_1 \ w_1$

$\vdots$

$x_N \ w_N$

入力の制約

$1 \leq L \leq 30$

$1 \leq N \leq 30$

$|x_i| \leq L$

$1 \leq w_i \leq 30$

全て整数

出力

答えは次のような形式で出力せよ．
$1$ 行目の $N’$ は立子さんが吊るしたおもりの数である．
$1+i$ 行目の $x_i’, w_i’$ は，それぞれ立子さんが吊るしたおもりの位置と重さである．

$N'$

$x_1' \ w_1'$

$\vdots$

$x_N' \ w_N'$

出力の制約

立子さんが追加で吊り下げるおもりは，以下の条件を満たす必要がある.

$0 \leq N' \leq 50000$

$|x_i'| \leq L$

$1 \leq w_i' \leq 50000$

全て整数

サンプル

サンプル入力1

3
3
1 1
2 1
3 1

サンプル出力1

1
-3 2

他にも，例えば以下のような出力も正解として扱われる.

2
-3 1
-3 1

これらを図示すると次のようになる．

サンプル入力2

3
3
1 1
0 2
-1 3

サンプル出力2

1
2 1

サンプル入力3

10
4
1 2
2 3
-7 1
-1 1

サンプル出力3

0

秤は最初から釣り合っていることもある．

Solution in C# (judge verdict: Accepted)

using System;

public class hello
{
    public static void Main()
    {
        Console.ReadLine().Trim();
        var n = int.Parse(Console.ReadLine().Trim());
        var baL = 0;
        for (int i = 0; i < n; i++)
        {
            string[] line = Console.ReadLine().Trim().Split(' ');
            baL += int.Parse(line[0]) * int.Parse(line[1]);
        }
        if (baL == 0) { Console.WriteLine(0); goto end; }
        Console.WriteLine(1);
        if (baL > 0) Console.WriteLine("-1 {0}", baL);
        else Console.WriteLine("1 {0}", -baL);
        end:;
    }
}