alexjercan/bugnet huggingface dataset:
Donut Decoration

Donut maker's morning is early. Mr. D, who is also called Mr. Donuts, is an awesome donut maker. Also today, he goes to his kitchen and prepares to make donuts before sunrise.

In a twinkling, Mr. D finishes frying $N$ donuts with a practiced hand. But these donuts as they are must not be displayed in a showcase. Filling cream, dipping in chocolate, topping somehow cute, colorful things, etc., several decoration tasks are needed. There are $K$ tasks numbered 1 through $K$, and each of them must be done exactly once in the order $1, 2, ..., K$ to finish the donuts as items on sale.

Instantly, Mr. D arranges the $N$ donuts in a row. He seems to intend to accomplish each decoration tasks sequentially at once. However, what in the world is he doing? Mr. D, who stayed up late at yesterday night, decorates only a part of the donuts in a consecutive interval for each task. It's clearly a mistake! Not only that, he does some tasks zero or several times, and the order of tasks is also disordered. The donuts which are not decorated by correct process cannot be provided as items on sale, so he should trash them.

Fortunately, there are data recording a sequence of tasks he did. The data contain the following information: for each task, the consecutive interval $[l, r]$ of the decorated donuts and the ID $x$ of the task. Please write a program enumerating the number of the donuts which can be displayed in a showcase as items on sale for given recorded data.

Input

The input consists of a single test case. The test case is formatted as follows.

$N$ $K$

$T$

$l_1$ $r_1$ $x_1$

...

$l_T$ $r_T$ $x_T$

The first line contains two integers $N$ and $K$, where $N$ ($1 \leq N \leq 200,000$) is the number of the donuts fried by Mr. D, and $K$ ($1 \leq K \leq 200,000$) is the number of decoration tasks should be applied to the donuts. The second line contains a single integer $T$ ($1 \leq T \leq 200,000$), which means the number of information about tasks Mr. D did. Each of next $T$ lines contains three
integers $l_i$, $r_i$, and $x_i$ representing the $i$-th task Mr. D did: the $i$-th task was applied to the interval $[l_i, r_i]$ ($1 \leq l_i \leq r_i \leq N$) of the donuts inclusive, and has ID $x_i$ ($1 \leq x_i \leq K$).

Output

Output the number of the donuts that can be provided as items on sale.

Sample Input 1

3 2
3
1 2 1
2 3 2
3 3 1

Output for the Sample Input 1

1

Sample Input 2

5 3
6
2 3 1
1 3 2
4 5 1
2 4 3
3 5 2
5 5 3

Output for the Sample Input 2

2

Sample Input 3

10 1
2
2 9 1
5 7 1

Output for the Sample Input 3

5
Longest Shortest Path

You are given a directed graph and two nodes $s$ and $t$. The given graph may contain multiple edges between the same node pair but not self loops. Each edge $e$ has its initial length $d_e$ and the cost $c_e$. You can extend an edge by paying a cost. Formally, it costs $x \cdot c_e$ to change the length of an edge $e$ from $d_e$ to $d_e + x$. (Note that $x$ can be a non-integer.) Edges cannot be shortened.

Your task is to maximize the length of the shortest path from node $s$ to node $t$ by lengthening some edges within cost $P$. You can assume that there is at least one path from $s$ to $t$.

Input

The input consists of a single test case formatted as follows.

$N$ $M$ $P$ $s$ $t$

$v_1$ $u_1$ $d_1$ $c_1$

...

$v_M$ $u_M$ $d_M$ $c_M$

The first line contains five integers $N$, $M$, $P$, $s$, and $t$: $N$ ($2 \leq N \leq 200$) and $M$ ($1 \leq M \leq 2,000$) are the number of the nodes and the edges of the given graph respectively, $P$ ($0 \leq P \leq 10^6$) is the cost limit that you can pay, and $s$ and $t$ ($1 \leq s, t \leq N, s \ne t$) are the start and the end node of objective path respectively. Each of the following $M$ lines contains four integers $v_i$, $u_i$, $d_i$, and $c_i$, which mean there is an edge from $v_i$ to $u_i$ ($1 \leq v_i, u_i \leq N, v_i \ne u_i$) with the initial length $d_i$ ($1 \leq d_i \leq 10$) and the cost $c_i$ ($1 \leq c_i \leq 10$).

Output

Output the maximum length of the shortest path from node $s$ to node $t$ by lengthening some edges within cost $P$. The output can contain an absolute or a relative error no more than $10^{-6}$.

Sample Input 1

3 2 3 1 3
1 2 2 1
2 3 1 2

Output for the Sample Input 1

6.0000000

Sample Input 2

3 3 2 1 3
1 2 1 1
2 3 1 1
1 3 1 1

Output for the Sample Input 2

2.5000000

Sample Input 3

3 4 5 1 3
1 2 1 2
2 3 1 1
1 3 3 2
1 3 4 1

Output for the Sample Input 3

4.2500000
Optimal Tournament

In 21XX, an annual programming contest "Japan Algorithmist GrandPrix (JAG)" has been one of the most popular mind sport events. You, the chairperson of JAG, are preparing this year's JAG competition.

JAG is conducted as a knockout tournament. This year, $N$ contestants will compete in JAG. A tournament is represented as a binary tree having $N$ leaf nodes, to which the contestants are allocated one-to-one. In each match, two contestants compete. The winner proceeds to the next round, and the loser is eliminated from the tournament. The only contestant surviving over the other contestants is the champion. The final match corresponds to the root node of the binary tree.

You know the strength of each contestant, $A_1,A_2, ..., A_N$, which is represented as an integer. When two contestants compete, the one having greater strength always wins. If their strengths are the same, the winner is determined randomly.

In the past JAG, some audience complained that there were too many boring one-sided games. To make JAG more attractive, you want to find a good tournament configuration.

Let's define the boringness of a match and a tournament. For a match in which the $i$-th contestant and the $j$-th contestant compete, we define the boringness of the match as the difference of the strength of the two contestants, $|A_i - A_j|$. And the boringness of a tournament is defined as the sum of the boringness of all matches in the tournament.

Your purpose is to minimize the boringness of the tournament.

You may consider any shape of the tournament, including unbalanced ones, under the constraint that the height of the tournament must be less than or equal to $K$. The height of the tournament is defined as the maximum number of the matches on the simple path from the root node to any of the leaf nodes of the binary tree.

Figure K-1 shows two possible tournaments for Sample Input 1. The height of the left one is 2, and the height of the right one is 3.

Write a program that calculates the minimum boringness of the tournament.

Input

The input consists of a single test case with the following format.

$N$ $K$

$A_1$ $A_2$ ... $A_N$

The first line of the input contains two integers $N$ ($2 \leq N \leq 1,000$) and $K$ ($1 \leq K \leq 50$). You can assume that $N \leq 2^K$. The second line contains $N$ integers $A_1, A_2, ..., A_N$. $A_i$ ($1 \leq A_i \leq 100,000$) represents the strength of the $i$-th contestant.

Output

Output the minimum boringness value achieved by the optimal tournament configuration.

Sample Input 1

4 3
1 3 4 7

Output for the Sample Input 1

6

Sample Input 2

5 3
1 3 4 7 9

Output for the Sample Input 2

10

Sample Input 3

18 7
67 64 52 18 39 92 84 66 19 64 1 66 35 34 45 2 79 34

Output for the Sample Input 3

114
A - 阿吽の呼吸

Problem Statement

時は進んで 2060 年，共に 70 歳を迎える前田さんと後藤さんは長い付き合いの友人であり，大学時代にACM-ICPCで共に戦った仲間でもある．

二人は今でもよく一緒にお茶を飲みつつ，競技プログラミングの話で盛り上がっている．

二人で一緒にお茶を飲む時，前田さんが 1 回Aと言うと，その発言の後に後藤さんがちょうど 1 回Unと返事をする習慣がいつのまにか出来た．

しかし最近後藤さんは物忘れや勘違いをすることが多く，前田さんがAと言っても，後藤さんはたまにUnの返事を忘れたり，余計に返事をしたりする．

ついこの間も前田さんと後藤さんはお茶を飲みながら，二人のお気に入りのデータ構造について話し込んでいたようだ．

この時の会話の中から，Aで表される前田さんの発言と，Unで表される後藤さんの返事のみからなる記録が時系列で与えられたとき，後藤さんが習慣通りに反応したとみなすことが出来るかチェックしてほしい．

注意点として，前田さんの発言に対し，後藤さんの返事が多少遅れても，後藤さんは習慣通りに反応したとみなせる場合がある，ということが挙げられる．
例えば，前田さんが2回連続してAと言った後，後藤さんが 2 回連続してUnと返事をして会話が終了した場合は，後藤さんが習慣通りの返事をしたとみなされる (Sample Input 2 参照)．

また，会話が終了した時点で，前田さんがAと言った回数と，後藤さんがUnと返事した回数が一致しても，後藤さんが習慣通りに返事をしたとはみなされない場合もあるので注意すること．
例えば，前田さんが1回Aと言った後，後藤さんが 2 回連続してUnと返事し，その後で前田さんが 1 回Aと言って会話が終了した場合は，後藤さんが習慣通りの返事をしたとはみなされない (Sample Input 3 参照)．

Input

入力は以下の形式で与えられる．

$N$

$S_1$

$S_2$

$…$

$S_N$

最初の行はひとつの整数からなる．
$N$ は，記録に含まれる前田さんがAと発言した回数と後藤さんがUnと返事した回数の合計を表し，$1 \leq N \leq 100$ を満たす．
その後 $N$ 行に，文字列 $S_i$ が続き，各 $S_i (1 \leq i \leq N)$ はAかUnのどちらかに一致する．ここでAは前田さんの発言，Unは後藤さんの返事を表す．
$i$ の小さい順に $S_i$ が記録されたものとする．
前田さんと後藤さんが同時に発言することは無かったとする．

Output

後藤さんが習慣通りに反応したとみなすことが出来ればYES，出来なければNOを1行で出力すること．

Sample Input 1

4
A
Un
A
Un

Output for the Sample Input 1

YES

Sample Input 2

4
A
A
Un
Un

Output for the Sample Input 2

YES

Sample Input 3

4
A
Un
Un
A

Output for the Sample Input 3

NO

Sample Input 4

1
Un

Output for the Sample Input 4

NO
B - 豪邸と宅配便

Problem Statement

太郎君は豪邸で一人暮らしをしている．
勉強好きの太郎君は，今日も邸内の書斎で勉強をするつもりである．
太郎君は，書斎以外の場所では集中できないので，勉強は必ず書斎で行う．

ところがこの日，太郎君宛の宅配便が $N$ 件届く．$i$ ($1 \leq i \leq N$) 番目の宅配便の届く時刻は $a_i$ である．
配達員を玄関先で待たせるのは心苦しいので，太郎君は宅配便の届く時刻には玄関にいることにした．
豪邸は広いので，書斎と玄関間の移動には片道 $M$ の時間がかかる．

一方で，太郎君はできるだけ長い時間勉強したいと思っている．
時刻 $0$ から時刻 $T$ までで，太郎君が書斎で勉強できる時間の最大値を求めよ．

なお，太郎君は時刻 $0$ には書斎にいて，時刻 $M$ より早く宅配便が届くことはなく，時刻 $T$ より遅く宅配便が届くこともない．
また，太郎君が宅配便を受け取るのにかかる時間は無視できる．

Input

各データセットは 2 行からなる．
1 行目は空白で区切られた 3 つの整数 $N, M, T$ からなる．
これらの整数は，$1 \leq N \leq 100$, $1 \leq M \leq 10{,}000$, $1 \leq T \leq 10{,}000$ を満たす．
2 行目は空白で区切られた $N$ 個の整数 $a_1, a_2, \dots, a_N$ からなる．
各 $a_i$ は $M \leq a_i \leq T$ を満たし，また $a_i < a_{ i + 1 }$ ($1 \leq i < N$) である．

Output

太郎君が勉強できる時間の最大値を表す整数を 1 行に出力せよ．

Sample Input 1

1 1 5
3

Output for the Sample Input 1

3

Sample Input 2

2 1 10
2 7

Output for the Sample Input 2

6

Sample Input 3

2 4 10
6 8

Output for the Sample Input 3

2
C - みさわさんの根付き木

Problem Statement

あなたは親友であるみさわさんの誕生日が近いことに気づき，根付きの二分木をプレゼントすることにした．
ここで，根付きの二分木とは，以下のようなグラフ構造である．(図 1)

各頂点には，その頂点の親と呼ばれる頂点がちょうど 1 つだけ存在し，親と辺で結ばれている．ただし，根と呼ばれる 1 つの頂点のみ，例外的に親を持たない．

各頂点は，左の子と呼ばれる頂点をちょうど1つ持つか，あるいは持たない．左の子を持つ場合，左の子とは辺で結ばれており，左の子の親はその頂点である．

各頂点は，右の子と呼ばれる頂点をちょうど1つ持つか，あるいは持たない．右の子を持つ場合，右の子とは辺で結ばれており，右の子の親はその頂点である．

図 1. 2 つの根付きの二分木とその合成の例

あなたは手作りの品を贈りたいと考えたので，市販の根付きの二分木を 2 つ買ってきて重ね合わせて合成することで，さらによい根付きの二分木を 1 つ作ることにした．
あなたが買ってきた 2 つの木の各頂点には非負の整数が書かれている．
みさわさんは少ない頂点数で各数値が大きいような，コストパフォーマンスがよい木が好みなので，以下の手順に沿って新しい二分木を作ることにする．

2 つの二分木それぞれの根に書かれた整数の和を，新しい二分木の根に書く整数とする．

どちらの二分木の根も左の子を持っている場合，それらを根とする二分木それぞれを合成した二分木を作り，新しい二分木の根の左の子とする．そうでない場合，新しい二分木の根は左の子を持たない．

どちらの二分木の根も右の子を持っている場合，それらを根とする二分木それぞれを合成した二分木を作り，新しい二分木の根の右の子とする．そうでない場合，新しい二分木の根は右の子を持たない．

あなたは実際に合成する作業を行う前に，できあがる根付きの二分木がどのようになるのか確かめることにした．
買ってきた 2 つの根付きの二分木の情報が与えられるので，上記の手順に従って合成される新しい根付きの二分木を求めるプログラムを作成せよ．

ここで，根付きの二分木の情報は以下のような形式で文字列として表現するものとする．

(左の子を表す文字列)[根に書かれた整数](右の子を表す文字列)

節点が存在しない木は空文字列とする．例えば図 1 の合成されてできた新しい根付きの二分木は (()[6]())[8](((()[4]())[7]())[9]()) のように書く．

Input

入力は次の形式で表される．

$A$

$B$

$A$，$B$ はそれぞれ買ってきた根付きの二分木の情報を表す文字列であり，長さは $7$ 以上 $1000$ 以下である．
与えられる情報は前述の形式に従っており，余計な空白文字等を含まない．
また，節点が存在しない根付き木が入力されることはない．
各節点に書かれた整数は $0$ 以上 $1000$ 以下であると仮定してよい．
ただし，出力の各節点に書かれる整数はこの範囲に収まらない場合もあることに注意せよ．

Output

2 つの根付きの二分木を合成してできあがる新しい根付きの二分木の情報を 1 行で出力せよ．特に，行末の改行を除く余計な空白文字等を含まないよう注意せよ．

Sample Input 1

((()[8]())[2]())[5](((()[2]())[6](()[3]()))[1]())
(()[4]())[3](((()[2]())[1]())[8](()[3]()))

Output for the Sample Input 1

(()[6]())[8](((()[4]())[7]())[9]())

Sample Input 2

(()[1]())[2](()[3]())
(()[1](()[2]()))[3]()

Output for the Sample Input 2

(()[2]())[5]()

Sample Input 3

(()[1]())[111]()
()[999](()[9]())

Output for the Sample Input 3

()[1110]()

Sample Input 4

(()[2](()[4]()))[8]((()[16]())[32](()[64]()))
((()[1]())[3]())[9](()[27](()[81]()))

Output for the Sample Input 4

(()[5]())[17](()[59](()[145]()))

Sample Input 5

()[0]()
()[1000]()

Output for the Sample Input 5

()[1000]()
D - インビジブル

Problem Statement

あなたは友達と"インビジブル"というカードゲームを遊ぼうとしている．
このカードゲームでは，"得点カード"と"妨害カード"という2種類のカードを使う．
それぞれの得点カードには，正の値が書かれている．このカードゲームのルールは次の通りである．

ゲームはプレイヤー1とプレイヤー2の2人のプレイヤーで行われる．ゲームはプレイヤー1のターンから始まる．

場には，1つのスタックと2つのデッキがある．スタックは，2人のプレイヤーが置いたカードからなる．また，それぞれのプレイヤーが持つデッキはそのプレイヤーが持つ得点カードと妨害カードからなる．プレイヤーは自分，もしくは相手デッキのカードの順番をいつでも確認できる．ゲームの開始時点ではスタックには1枚もカードはない．

2人のプレイヤーは交互に次の2つの行動のどちらかをちょうど1回行う．

自分のデッキの一番上のカードをスタックの一番上に置く．ただし，この行動は自分のデッキにカードが1枚も存在しない時には行うことができない．
自分のターンをパスする．

プレイヤーがターンをパスした時，次の処理を行う．

各プレイヤーは次の2つの条件を満たすスタック中のすべての得点カードを得る．得た得点カードは場から取り除かれる．

自分がスタックにおいた得点カードである．
相手が置いたどの妨害カードよりも上にある (スタック中に相手の妨害カードが存在しないとき，プレイヤーは自分がスタックに置いたすべてのカードを得る)．

スタックのカードをすべて取り除く．

もしスタックにカードがない状態で両プレイヤーが連続してパスした場合，ゲームを終了する．
各プレイヤーの最終的なスコアは，各プレイヤーが得た得点カードに書かれた数の総和である．

各プレイヤーは，自分のスコアから相手のスコアを引いた値を最大化するために最適な行動をとる．
あなたの仕事は，与えられた各プレイヤーのデッキに対し，各プレイヤーが最適に行動したときのプレイヤー1のスコアとプレイヤー2のスコアの差を計算することである．

Input

入力は次のような形式の単一テストケースからなる．

$n$ $m$

$a_1$ $a_2$ $\dots$ $a_n$

$b_1$ $b_2$ $\dots$ $b_m$

1行目は山札の枚数を表す正の整数 $n$, $m$ ($1 \le n, m \le 50$) からなる．
2行目は $n$ 個の整数からなり，$a_i$ はプレイヤー1のデッキの上から $i$ 番目のカードを表す ($1 \le i \le n$)．$a_i$ は $1$ 以上，$1{,}000{,}000$ 以下，または $-1$ である．
3行目は $m$ 個の整数からなり，$b_j$ はプレイヤー2のデッキの上から $j$ 番目のカードを表す ($1 \le j \le m$)．$b_j$ は $1$ 以上，$1{,}000{,}000$ 以下，または $-1$ である．
$a_i$, $b_j$ が正の整数の時は得点カードを表し，$-1$ の時は妨害カードを表す．

Output

お互いのプレイヤーが最適に行動した時の (プレイヤー1のスコア) - (プレイヤー2のスコア) を出力せよ．

Sample Input 1

2 2
100 -1
200 300

Output for the Sample Input 1

-100

Sample Input 2

3 5
10 30 -1
-1 90 20 10 -1

Output for the Sample Input 2

0

Sample Input 3

4 5
15 20 10 30
50 30 10 20 25

Output for the Sample Input 3

-60
E - 選挙活動

Problem Statement

あなたは次回の選挙の候補者であるX氏の支援者である．
X氏は駅前での街頭演説を予定しており，できるだけ多くの有権者に見てもらえる場所で演説しようと考えている．

駅前は $N$ 個の障害物と $M$ 人の有権者が存在している二次元平面として与えられる．
各障害物は多角形であらわされ，その多角形の内側の領域が障害物となる．多角形の辺上は障害物に含まれない．
また，有権者は平面上の点としてあらわされる．
ある有権者の位置とX氏の位置を結ぶ線分上に障害物が存在しないとき，その有権者はX氏を見ることができる．

あなたの仕事は，駅前の障害物と有権者の情報をもとに，もっとも多くの有権者に見てもらえる地点を探すことだ．
最大で何人の有権者から見えるように演説することができるかを求めよ．

Input

入力は以下のフォーマットで与えられる．

$N$ $M$

$polygon_1$

$polygon_2$

$...$

$polygon_N$

$x_1$ $y_1$

$x_2$ $y_2$

$...$

$x_M$ $y_M$

データセットの最初の行は空白文字1つで区切られた2個の整数 $N$, $M$ からなる．
$N$ $(1 \le N \le 5)$ は駅前にある障害物の個数であり，$M$ $(1 \le M \le 10)$ は駅前にいる有権者の数である．
続く行から $N$ 個の障害物の情報が与えられる．1つの障害物を表す入力は以下の形式で与えられる．

$L$

$x_1$ $y_1$

$x_2$ $y_2$

$...$

$x_L$ $y_L$

各障害物情報の最初の行はその障害物をあらわす多角形に含まれる頂点の数 $L$ である．
その後の $L$ 行には多角形の頂点の座標を表す整数の組が反時計回りに記されている．なお，障害物を構成する頂点数の合計は $15$ 個以下となる．

$N$ 個の障害物の情報の後に続く $M$ 行には有権者のいる座標を表す整数の組が与えられる．

また，各テストケースは以下の条件を満たす：

$ 0 \le |x_i|, |y_i| \le 20 $
多角形の頂点または有権者のいる場所の座標はすべて互いに異なる．
多角形の頂点または有権者のいる場所の座標のうち3点が同一直線状に存在することはない．
2つの異なる多角形同士は交差を持たない．
各多角形は自己交差を持たない．
多角形の内部に有権者が存在することはない．

Output

最大で何人の有権者が演説を見られるようになるかを1行に出力せよ．

Sample Input 1

1 2
4
5 5
15 5
15 15
5 15
0 10
20 10

Output for the Sample Input 1

2

Sample Input 2

1 2
6
0 0
20 0
12 9
20 20
0 20
8 11
1 10
19 10

Output for the Sample Input 2

1

Sample Input 3

4 2
3
0 0
20 0
20 1
3
0 18
19 19
19 20
3
3 2
4 2
4 17
3
16 3
17 3
17 18
2 9
18 10

Output for the Sample Input 3

1

Sample Input 4

3 3
3
0 -2
-1 -3
-1 -6
3
2 2
3 2
4 3
3
-4 4
-4 5
-5 6
0 -3
3 3
-5 5

Output for the Sample Input 4

3

Sample Input 5

2 2
4
2 0
1 2
-1 2
-2 0
4
3 3
3 4
-3 4
-3 3
2 1
-2 1

Output for the Sample Input 5

2

Sample Input 6

1 1
4
1 1
-1 1
-1 -1
1 -1
0 2

Output for the Sample Input 6

1

各入力例の障害物および有権者の配置は，それぞれ以下の図のようになっている．
F - 土地相続

Problem Statement

ある $N$ 人の兄弟は親の遺産相続の話し合いをしていた．
彼らの親の残した莫大な遺産の中には広大な土地も含まれていた．
その土地は南北に $H$ km, 東西に $W$ km に広がる長方形の形をしている．
この土地は 1 km 四方の区画単位で管理されており，
土地の北端から $i$ 〜 $i+1$ km かつ西端から $j$ 〜 $j+1$ km の範囲にある 1 km 四方の区画を区画 $(i, j)$ と呼ぶ．
（$i$, $j$ は $0 \leq i < H$, $0 \leq j < W$ を満たす整数である．）
土地の価格は区画ごとに決まっており，区画 $(i, j)$ の価格は $a_{i, j}$ で表される．

兄弟は次のように土地を分けて相続することにした．

$N$ 人の兄弟それぞれが区画をいくつか選び相続する．
各兄弟が相続する土地が 1 つの長方形を成すように区画を選ばなければならない．
$N$ 人の兄弟が相続する土地は重なってはならない．
誰も相続しない区画があってもよい．誰も相続しない区画は放棄される．

ある人が相続する土地の範囲に含まれる区画の価格の和をその土地の価格と呼ぶ．
兄弟は，各々が相続する土地の価格がなるべく公平になるように土地を分けたい．
あなたの仕事は， $N$ 人の中で相続する土地の価格が
最も低い人の土地の価格を最大にするような土地の分け方を考えることである．
そのように土地を分けた時の，相続する土地の価格が最も低い人の土地の価格を答えるプログラムを作成せよ．

Input

入力は以下のような形式で与えられる．

$H$ $W$ $N$

$a_{0,0}$ $a_{0,1}$ ... $a_{0,W-1}$

...

$a_{H-1,0}$ $a_{H-1,1}$ ... $a_{H-1,W-1}$

$H$, $W$ $(2 \leq H,W \leq 200)$ は遺産の土地の南北の長さと東西の長さをそれぞれ表す．
$N$ $(2 \leq N \leq 4)$ は土地を相続する兄弟の人数を表す．
$a_{i, j}$ $(0 \leq a_{i,j} \leq 10^4)$ は区画 $(i, j)$ の価格を表す．

Output

相続する土地の価格が最も低い人の土地の価格を最大にするように分けた時の，
最も低い土地の価格を 1 行で出力せよ．

Sample Input 1

3 3 2
1 2 2
3 1 0
0 4 3

Output for the Sample Input 1

7

図のように分けるのが最適である．

Sample Input 2

3 3 2
0 1 0
1 1 1
0 1 0

Output for the Sample Input 2

1

Sample Input 3

2 5 3
8 3 0 5 6
2 5 2 5 2

Output for the Sample Input 3

11

Sample Input 4

3 3 4
3 3 4
3 3 4
3 3 4

Output for the Sample Input 4

7

Sample Input 5

4 4 4
2 2 2 2
2 1 2 1
2 2 2 2
2 1 2 1

Output for the Sample Input 5

7
カレー作り

ACM-ICPC国内予選が近づいてきたので，練習に追い込みをかけたいと思っていたあなたは，友人宅で行われる競技プログラミング合宿に参加することにした．
参加者のこだわりで，食事は自炊することになった．

合宿初日の夜，参加者達はその日の練習を終え，夕食の準備に取り掛かり始めた．
競技プログラミングだけでなく，自炊でも「プロ」と友人によく言われるあなたは，担当分のメニューをあっという間に作り終えてしまい，暇を持て余してしまった．
そこで，他の人が担当していたカレー作りを手伝うことにした．

今，W0 [L] の水に R0 [g] のルウを混ぜた作りかけのカレーがある．
今回使うルウは 1 種類で，1 個あたり R [g] である．ルウは十分な量の備蓄がある．
あなたはこのルウを使う場合，濃度が C [g/L] のカレーが最も美味しいと考えているので，このカレーにいくつかのルウと水を適切に加え，濃度を C [g/L] にしたいと考えている．
ここで，ルウ R0 [g] が水 W0 [L] に溶けているカレーの濃度は R0 / W0 [g/L] であり，このカレーに R [g] のルウを X 個と水 Y [L] を追加すると，その濃度は (R0 + X R) / (W0 + Y) [g/L] になる．
ルウは大量にあるものの，使い過ぎるのは良くないと考えたあなたは，追加するルウの個数を出来る限り少なくして濃度 C [g/L] のカレーを作ることにした．

濃度 R0/W0 [g/L] のカレーに，ルウか水のいずれか，またはその両方を適切に加えることによって濃度 C [g/L] のカレーを作るとき，追加すべきルウの個数 X の最小値を求めて欲しい．

ただし，今回のカレー作りについては，以下の事柄に注意すること．

追加するルウの個数 X の値は 0 以上の整数でなければならない．つまり，ルウを 1/3 個分だけ追加する，といったことは出来ない．
追加する水の体積 Y の値は 0 以上の実数として良く，整数である必要はない．
ルウか水のいずれか，またはその両方を追加しなくても濃度 C のカレーを作ることが出来る場合もある．
ルウや水は十分な量を確保しているので，ルウや水が足りず濃度 C のカレーを作ることが出来ない，という事態は起こらないとして良い．

Input

入力は複数のデータセットからなる．
各データセットは 1 行からなり，次の形式で表される．

R0 W0 C R

ここで，R0，W0，C，R はそれぞれ作りかけのカレーに既に溶け込んだルウの質量 [g]，カレーに含まれる水の体積 [L]，あなたが作りたいカレーの濃度 [g/L]，ルウ 1 個あたりの質量 [g] を表す．
これらの値は，全て 1 以上 100 以下の整数である．
入力の終わりは，空白で区切られた 4 つのゼロからなる行によって示される．

Output

各データセットについて，W0 [L] の水に R0 [g] のルウを混ぜた作りかけのカレーから，濃度 C のカレーを作るために追加する必要のあるルウの個数の最小値を 1 行で出力すること．追加する水の量を出力してはならない．

入力制約から，各データセットの答えとなるルウの個数の最小値は，32ビット符号付き整数で表現される範囲におさまることが保証されることに注意せよ．

Sample Input

10 5 3 4
2 5 2 3
91 13 7 62
10 1 3 5
20 100 2 20
2 14 7 1
0 0 0 0

Output for Sample Input

2
3
0
0
9
96
jfen

H × W の盤面で遊ぶ一人用ゲームがある．このゲームはそれぞれのセルに 0 か 1 個のボールがあるのでそれを移動させるゲームである．あなたはこのゲームで遊んでいたが，ボールは非常に丸いため，セルからセルへ正確にボールを移動させるのが難しいことに気づいた．そこであなたは，命令通りにボールを動かしてくれるロボットを作ることにした．ここで，セルを表す表記として (y, x) という表記を用いる．これは y 行目の x 列目のセルを表す．

ロボットへの命令は 4 つの整数 a, b, c, d で与えられる．これは (a, b) にあるボールを (c, d) に移動することを表す．このとき，(a, b) にボールが存在し， (c, d) にボールが存在しないことが保証される．

盤面の状態は，"jfen" と呼ばれる次の記法で表される．

[1 行目のデータ]/[2 行目のデータ]/.../[H 行目のデータ]

この記法は盤面の各行を表すデータをスラッシュ区切りで連結したものである．各行のデータは文字列で表され，1 列目からW列目にあるセルの状態を左から順に記述している．この文字列は数字と文字 'b' で表され，数字が表す整数は連続した空白のセル数を，'b' はボールが存在するセルを表している．ここで，各行のデータで整数が連続してはならない．また，各行のデータに書かれている整数の総和と 'b' の個数の和は必ず W になる．

例として，次のような盤面状態を考える．空白のセルを '.' で表し，ボールが存在するセルを 'b' で表現している．この例の i 行目の左から j 文字目は盤面の i 行目の j 列目のセルの状態を表す．

....
.b.b
....

上記の盤面を jfen で表記すると次のようになる．

4/1b1b/4

ロボットに現在の盤面の状態と 1 つのボールを動かす命令を与えた時に，ロボットがボールを動かした後の盤面を出力するプログラムを作成せよ．このとき，出力する盤面は jfen 記法で出力せよ．

Input

入力は複数データセットからなる．
各データセットは以下の形式からなる．

S
a b c d

各データセットは 2 行からなり，最初の行には盤面の状態を表す jfen 形式の文字列 S が与えられる．ここで， 盤面のサイズは 2 ≤ W, H ≤ 9 を満たす．続く行にはロボットへの命令が与えられる．これは (a, b) にあるボールを (c, d) に移動させる命令を表す．また，入力の終わりは # で表される．

Output

出力は各データセットごとに命令を実行したあとの盤面の状態を jfen 記法で表した文字列 1 行である．出力行には他の文字があってはならない．

Sample Input

b1/1b
1 1 1 2
b5/bbbbbb
2 4 1 4
b2b2b/7
1 4 2 4
#

Output for Sample Input

1b/1b
b2b2/bbb1bb
b5b/3b3

1番目の入力の初期状態は次のようになる．

b．
.b

(1,1) のボールを (1,2) に移動させるので命令後の盤面は次のようになる．

.b
.b
カーテン

もうすぐ夏がやってくる．あなたは夏に向けて部屋の模様替えをすることにした．今年の夏はとても日差しが強いことが予想されており，まぶしいのが苦手なあなたには辛い季節になりそうだ．そこで，あなたは部屋の明るさを調節するために，部屋の窓にカーテンを取り付けようと考えた．

取り付けるカーテンは長方形であり，辺が地面に対して垂直，もしくは平行であるように取り付ける．また，あなたの部屋の窓は非常に特殊な形をしており，各辺が地面に平行または垂直であるような N 角形で表される．そのため，カーテンを取り付けたときにカーテンに覆われていない窓の面積がどのくらいになるのかを求めるのは難しい．部屋の明るさを調節するためにも，カーテンを取り付ける位置を決めた時にどのくらい窓が覆えるかを知ることは重要である．そこで，あなたは窓とカーテンの設置位置と形状が与えられたときに，カーテンに覆われていない窓の面積を求めるプログラムを作ることにした．

例として次のような窓とカーテンの設置の仕方を考える．この場合はカーテンに隠れていない窓の面積は 8 となる．この例はサンプル入力の 3 ケース目に対応する．

Input

入力は複数データセットからなる．
各データセットは次の形式で与えられる．

N
x1 y1
:
:
xN yN
a1 b1
a2 b2
a3 b3
a4 b4

最初の行には窓の持つ頂点数を表す整数 N が与えられる (4 ≤ N ≤ 100)．続く N 行には窓の相異なる頂点のx座標を表す整数 xi とy座標を表す整数 yi が与えられる (-20,000 ≤ xi, yi ≤ 20,000, 1 ≤ i ≤ N)．ここで，y軸の正の向きはx軸の正の向きから90度分反時計回りに回転させた方向とする．さらに，続く 4 行にはカーテンの相異なる頂点のx座標を表す整数 aj と y座標を表す整数 bj が与えられる (-20,000 ≤ aj, bj ≤ 20,000, 1 ≤ j ≤ 4)．窓，カーテンともに，それぞれの頂点は反時計回り順に与えられる．また，窓，カーテンを表す図形はそれぞれ自己交差がない図形である．

入力の終わりは1つの 0 からなる行で示す．

Output

各データセットについて，カーテンに覆われていない窓の面積を 1 行に出力せよ．ただし，面積は必ず整数値になることに注意せよ．

Sample Input

4
0 0
10 0
10 10
0 10
0 0
5 0
5 10
0 10
6
0 0
10 0
10 5
5 5
5 10
0 10
2 0
8 0
8 10
2 10
12
1 1
1 3
-1 3
-1 1
-3 1
-3 -1
-1 -1
-1 -3
1 -3
1 -1
3 -1
3 1
2 2
-2 2
-2 -2
2 -2
4
20000 20000
-20000 20000
-20000 -20000
20000 -20000
1000 1000
-1000 1000
-1000 -1000
1000 -1000
4
1000 1000
-1000 1000
-1000 -1000
1000 -1000
20000 20000
-20000 20000
-20000 -20000
20000 -20000
4
0 0
10 0
10 10
0 10
20 0
30 0
30 10
20 10
0

Output for Sample Input

50
30
8
1596000000
0
100
夏合宿の朝は早い

JAG夏合宿の朝は早い．
正確にはそこまで早くないが，早いと感じる参加者が多いという．

例年合宿の会場となる施設では，退去時に参加者がシーツの回収や掃除をしなければならない．
1 つの部屋でも退去が遅れると，来年以降の施設の利用に関わるため，参加者は一人たりとも寝坊してはならない．

そうは言っても皆人間，寝坊することもある．
しかし，起きた人が連絡先を知っている人にモーニングコールをすることで，一人も寝坊しないよう努めることができるはずだ．

JAG夏合宿の運営を任されたあなたは，寝坊を絶対に防ぐ手を打つための前準備として，どのくらいの確率で全員がきちんと起きられるのかを調べることにした．
準備としてまず，各参加者の寝坊する確率と，各々が連絡先を知っている人のリストを入手した．
ここで，部屋は個室であるため，各々が寝坊するか否かは，他の参加者が寝坊するか否かとは独立である．
起きた人は必ずすべての知っている連絡先にモーニングコールをすること，また，モーニングコールを受けた人は必ず起きることを仮定するとき，全員がきちんと起きられる確率をこれらの情報から計算せよ．

Input

入力は複数のデータセットからなる． 各データセットは次の形式で表される．

N
p1 m1 a(1,1) ... a(1, m1)
...
pN mN a(N,1) ... a(N, mN)

N は参加者の数であり，100 を越えない正の整数である．pi は i 番目の参加者の寝坊する確率であり，小数点以下 2 桁以内の 0 以上 1 以下の実数である．mi は i 番目の参加者が知っている連絡先の数であり，0 以上 N 以下の整数である．a(i, j) は i 番目の参加者が知っている j 番目の連絡先が a(i, j) 番目の参加者のものであることを表す．a(i, j) は N を越えない正の整数である．

入力の終わりは，1 つのゼロからなる行で示す．

Output

各データセットについて，全員が起床できる確率を 1 行に出力せよ．出力には 0.00001 以上の誤差を含んではならない．

Sample Input

2
0.60 1 2
0.60 0
2
0.60 1 2
0.60 1 1
5
0.10 1 2
0.20 1 3
0.30 1 4
0.40 1 5
0.50 1 1
5
0.10 0
0.20 1 1
0.30 1 1
0.40 1 1
0.50 1 1
5
0.10 4 2 3 4 5
0.20 0
0.30 0
0.40 0
0.50 0
4
0.10 1 2
0.20 0
0.30 1 4
0.40 1 3
5
0.10 0
0.20 0
0.30 0
0.40 0
0.50 0
0

Output for Sample Input

0.400000000
0.640000000
0.998800000
0.168000000
0.900000000
0.792000000
0.151200000
ぼくのかんがえたさいきょうのおふとん

あなたは新生活に備え，おふとんを N 枚買った．
i 番目のおふとんは si のぬくもり供給力をもつ．
これから M 日間の気温の予測から，j 日目には dj のぬくもり需要が予想される．
ぬくもりが足りなくても多すぎても快適さが損なわれるので，j 日目に掛けているおふとんのぬくもり供給力の総和と dj の差の絶対値を j 日目の不快度と呼ぶことにする．
このM 日分の不快度の合計ができるだけ少なくなるようにしたい．

ところで，あなたの部屋は残念ながらとても狭く，ベッドと押入れしかない．
そのため，ベッドにおふとんを 1 枚増やすには，そのとき押入れの一番上にあるおふとんをベッドの一番上に乗せるしかない．
逆に，ベッドのおふとんを 1 枚減らすには，そのときベッドの一番上にあるおふとんを押入れの一番上に置くしかない．
また，1 日に動かせるおふとんの枚数に制限は無いが，一度に 1 枚ずつしか動かすことができない．

さて，あなたはこれから買ってきたおふとんを押入れにしまう予定である．
このときに限り，おふとんを好きな順序で押入れにしまうことができる．
どのようにおふとんを押入れに収納し，その後，日々どのようにおふとんを出し入れすれば，快適に毎日を過ごせるだろうか．
M 日間の不快度の和を最小化するとき，その和の値を求めよ．
なお，一度も使われないおふとんがあってもよく，おふとんを一枚も使わない日があってもよい．

Input

入力は複数のデータセットからなる．
各データセットは以下の形式である．

N M
s1 s2 ... sN
d1 d2 ... dM

データセットの 1 行目には，おふとんの枚数 N と，気温が予測されている日数 M を表す整数がスペース区切りで与えられる．
2 行目には N 個の整数 s1, s2, ..., sN がスペース区切りで与えられ，si は i 番のおふとんのぬくもり供給力を表す．
3 行目には M 個の整数 d1, d2, ..., dM がスペース区切りで与えられ，dj は j 日目のぬくもり需要を表す．
これらの整数は，1 ≤ N ≤ 15, 1≤ M ≤ 100, 1 ≤ si, dj ≤ 1,000,000 を満たす．

入力の終わりは N = M = 0 のデータセットで表される．
このデータセットについて出力を行ってはならない．

Output

各データセットについて，M 日間の不快度の和の最小値を 1 行に出力せよ．

Sample Input

1 1
5
6
1 1
5
2
1 1
20
5
4 1
2 4 5 9
8
4 3
3 5 2 1
10 4 7
5 5
2 2 2 2 2
1 3 5 7 9
2 5
2 5
2 5 2 5 2
0 0

Output for Sample Input

1
2
5
1
1
5
4

5 つ目のケースについては，上から 5, 2, 3, 1 と押入れに置き，1 日目は 3 枚取り出し |10 - (5 + 2 + 3)| = 0，2 日目は 2 枚しまい |4 - 5| = 1，3 日目は 1 枚取り出し |7 - (5+2)| = 0 で，合計 0 + 1 + 0 = 1 となる．