---
# System prepended metadata

title: 'a253: 王老先生的磨菇田'
tags: [APCS, C++]

---

# a253: 王老先生的磨菇田

## 題目：

王老先生是一位磨菇農，每天的工作就是種磨菇，然後拿去市場賣。他種磨菇種了好幾十年，也因此種出了心得，擁有了一本「磨菇經」。 

他發現，種出來的磨菇不是只有單調的一種，而是有千奇百怪的外型、特徵、及味道。舉例來說吧，有些磨菇非常小隻，橘色的菌傘有鮮艷的點點，王老先生就稱它為「菇菇仔」；另外有些磨菇一樣是橘色菌傘加點點，但是大隻許多，因其可愛的外型，王老先生稱它「菇菇寶貝」，據說這種磨菇的菌傘具有養生的療效；還有一些磨菇體型和菇菇寶貝差不多，但是菌傘卻是詭異的藍色，王老先生稱它「藍菇菇」；還有一種磨菇也長得跟菇菇寶貝很像，因為某些不明原因，好像腐爛掉了卻還能存活，因為「頭」上貼著恐怖的道符，王老先生稱它「殭屍菇菇」；此外，偶爾可以找到有些磨菇長得特別大隻，比人的身高還高出許多，從高處落下還會引發地震！這種磨菇王老先生就叫它「蘑菇王」！當然，還有其它許多種不同種類的磨菇，王老先生都有為它們取名字。
 
然而，王老先生最近卻有了困擾，因為他的磨菇田規模越來越大，菇類生長速度也越來越快、種類也越來越多，他覺得有必要幫所有種類的磨菇統計一下數目，這樣不但好管理，也比較知道能賣多少錢。因此，他非常認真地研究各種菇類生長的速度，並且把它紀錄起來，並且為它們編號。然而，因為資訊量龐大，這種苦差事只有電腦能做到，請會寫程式的你幫幫王老先生吧！


## 測資說明：
每個測資檔僅含一筆測資。

首先會輸入多行，代表磨菇園中各種磨菇的初始值，以兩個整數S(0<=S<=100)，N(0<=N<=1000000)表示，S表種類的編號，N代表該種類的起始數目，以一個 -1表結束，這裡保證相同種類的蘑菇至多出現一次。

接著，會輸入過了一段時間後，會有哪些種類、哪些數目的磨菇長出來，一樣以兩個整數S2 (0 <= S2 <= 100)，
N2 (0 <= N2 <= 1000000)表示，S2表種類的編號，N2表增加的數目，同樣保證相同種類的蘑菇至多出現一次。
以一個 -1表示輸入結束。

請依照編號由小而大輸出一段時間後該種磨菇的數目。
先輸出編號，再以一個空格間格，輸出數目。
如果數目為0那就不用輸出。


## C++ Code：

```cpp=1
#include <iostream>
#include <vector>

using namespace std;

int main() {
	int S = 0, N = 0, tmp1 = 0, tmp2 = 0, size = 0;
	vector<int> v_mushroom(101, 0);

	while (cin >> tmp1) {
		if (tmp1 == -1) {
			break;
		}
		else {
			cin >> tmp2;
			v_mushroom[tmp1] = tmp2;
		}
	}
	while (cin >> tmp1) {
		if (tmp1 == -1) {
			break;
		}
		else {
			cin >> tmp2;
			v_mushroom[tmp1] += tmp2;
		}
	}
	size = v_mushroom.size();
	for (int i = 0; i < size; i++) {
		if (v_mushroom[i] != 0) {
			cout << i << " " << v_mushroom[i] << endl;
		}
	}

	return 0;
}
```
---

- [Zerojudge題目連結](https://zerojudge.tw/ShowProblem?problemid=a253)

###### tags: `APCS` `C++`