練習 - Pascal Library

題目:Pascal大學是某國家最古老的大學之一,需要翻新圖書館大樓,因為經歷了幾個世紀後,建築開始無法承受巨大數量的館藏書籍的重量。

為了幫助重建,大學校友協會決定舉辦一系列的籌款晚宴,邀請所有的校友參加。這種活動被證明是非常成功的,在過去幾年舉辦了幾次(成功的原因之一是Pascal大學的畢業生對學生時代有著美好的回憶,並希望看到一個重修後的Pascal圖書館)。

組織者保留了試算表,表明每一場晚宴有哪些校友參加了。現在,他們希望幫助確定是否有校友參加了所有的晚宴。

輸入:輸入包含若干測試用例。測試用例的第一行列出兩個整數 N 和 D ,分別列出校友的數目和組織晚宴的場數( 1 <= N <= 100,1 <= D <= 500)。校友編號從 1 到 N 。後面的 D 行每行表示一場晚宴的參加情況,列出 N 個整數 Xi = 1 ,否則 Xi = 0 。用 N = D = 0 作為輸入結束。

輸出:對於輸入中的每個測試用例,程式產生一行,如果至少有一個女校友/男校友參加了所有的晚宴,則輸出”yes”,否則輸出”no”。

import java.util.Arrays;
import java.util.Scanner;

public class PascalLibrary {

	public static void main(String[] args) {
		while (true) {
			int x, y;
			Scanner scanIn = new Scanner(System.in);
			x = scanIn.nextInt();
			y = scanIn.nextInt();
			if (x == 0  && y == 0)
				break;
			boolean att[] = new boolean[x];
			Arrays.fill(att, Boolean.TRUE);
			for (int i = 1; i <= y; i++) {
				scanIn = new Scanner(System.in);
				for (int j = 0; j < x; j++) {
					if (scanIn.nextInt() == 0) {
						att[j] = false;
					}
				}
			}
			
			boolean yes = false;
			for(boolean value: att) {
				if(value) { //如有校友全部晚宴都有出席,則將旗標設為true
					yes = true;
					break;
				}
			}
			
			if(yes) 
				System.out.println("yes");
			else
				System.out.println("no");
		}
	}

}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

驗證碼 * Time limit is exhausted. Please reload CAPTCHA.

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料