close
Content

最近程式競賽非常頻繁。儘管對參賽者來說這是好事,對出題者來說卻適得其反。目前出題者尚能維持一個題庫並說:「沒有問題!」但是如果繼續這樣下去不知道還能維持多久。

給你一年中每個月所出的題目數量及每個月所需要的題目數量。如果某個月需要 N 個題目,而當時的題庫數量不足,那麼該月的所有比賽均取消。請寫個程式來判斷是否有足夠的題目來辦比賽。記住,如果某個題目是在 X 月出的,該題目必須在 X+1 月或其後的月份才能使用。

Input
每筆測資的第一行有一個整數 S (0≤S≤100),表示年初已有的庫存題目數量。第二行有 12 個以空白隔開的整數,依序表示一到十二月每個月所出的題目數量。第三行也有 12 個以空白隔開的整數,依序表示每個月比賽所需要的題目數量。這些整數會介於 0 到 20 之間 (含)。負數代表輸入的結束。
Output
對於每筆測資,印出一行 "Case X:",X 代表測資編號。然後印出 12 行,如果 i 月 (1≤i≤12) 有足夠的題目,則在第 i 行印出 "No problem! :D" (沒有問題),否則印出 "No problem. :(" (沒有題目)。
Sample Input #1
5
3 0 3 5 8 2 1 0 3 5 6 9
0 0 10 2 6 4 1 0 1 1 2 2
-1
Sample Output #1
Case 1:
No problem! :D
No problem! :D
No problem. :(
No problem! :D
No problem! :D
No problem! :D
No problem! :D
No problem! :D
No problem! :D
No problem! :D
No problem! :D
No problem! :D
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 1.0s , <1K
#include <iostream>
using namespace std;
#define count 12
int main(){
	
	int s,Case=1; //目前有s題
	int a[12];//存放每個月增加的題目
	int b[12];//存放每個月消耗的題目

	while (cin>>s)
	{
		if (s<0){break;}	//一開始沒題目玩屁
		for (int i = 0; i < count; i++)
		{
			cin>>a[i];
		}
		for (int i = 0; i < count; i++)
		{
			cin>>b[i];
		}
		
		cout<<"Case "<<Case++<<":\n";	//cout<<case++   先輸出case,再++

		for (int i = 0; i < count; i++)
		{
			if(b[i]<=s){
				cout << "No problem! :D\n";
				s-=b[i];
			}
			else{
				cout << "No problem. :(\n";
			}
			s+=a[i];
		}
	}
}
arrow
arrow
    文章標籤
    高中生程式解題 UVA C++
    全站熱搜
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()