・問題
Vampirish Night
URL:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1019&lang=jp
あるところに、N 人家族の吸血鬼がいました。
吸血鬼はたいへんグルメなことで知られています。
吸血鬼の食べるものと言えばもちろん血液なのですが、どんな血液でもいいというわけではありません。
K 種類の血液型の血液を混ぜ合わせたものを飲みますが、どの血液型をどれだけ使用するのかは、個人によって全く異なります。
吸血鬼はたいへんグルメなことで知られています。
吸血鬼の食べるものと言えばもちろん血液なのですが、どんな血液でもいいというわけではありません。
K 種類の血液型の血液を混ぜ合わせたものを飲みますが、どの血液型をどれだけ使用するのかは、個人によって全く異なります。
一家の食事当番であるあなたは、晩御飯の支度をしようと冷蔵庫を覗き込みました。
あなたの最初の仕事は、冷蔵庫にある血液を使って、家族全員の食事を用意できるか判定するプログラムを書くことです。
input/output等はURLから。
・解答
とりあえず問題文を解読する所から。毎度の事だけど日本語がややこしいよね。
よく読むと、1人1人の好みに合ったN人分の食事を作らなければならない。
冷蔵庫に入ってるk種類の血を使って全員分の食事が作れるかどうか。
ってことがわかる。
次にinputを見た感じ
x列:
血の種類
y列:
0が冷蔵庫の中身
1~Nが○番目の人の食事に使うレシピ
だということがわかる。
プログラムの流れとしては、
1:
NとKを入れる(どちらも0なら終了)
2:
残りのデータを入れる
3:
冷蔵庫列から各吸血鬼の食事に必要な分の値を引く
4:
冷蔵庫列内にマイナスの値の血があるかどうか調べる。
1個でも発見出来たらNo
全て正の値ならYesを出力後1の処理に戻る
という単純な構造でした。
java言語でのソースを貼っておきます。
あなたの最初の仕事は、冷蔵庫にある血液を使って、家族全員の食事を用意できるか判定するプログラムを書くことです。
input/output等はURLから。
・解答
とりあえず問題文を解読する所から。毎度の事だけど日本語がややこしいよね。
よく読むと、1人1人の好みに合ったN人分の食事を作らなければならない。
冷蔵庫に入ってるk種類の血を使って全員分の食事が作れるかどうか。
ってことがわかる。
次にinputを見た感じ
x列:
血の種類
y列:
0が冷蔵庫の中身
1~Nが○番目の人の食事に使うレシピ
だということがわかる。
プログラムの流れとしては、
1:
NとKを入れる(どちらも0なら終了)
2:
残りのデータを入れる
3:
冷蔵庫列から各吸血鬼の食事に必要な分の値を引く
4:
冷蔵庫列内にマイナスの値の血があるかどうか調べる。
1個でも発見出来たらNo
全て正の値ならYesを出力後1の処理に戻る
という単純な構造でした。
java言語でのソースを貼っておきます。
import java.util.Scanner;
/**
* Vampirish Night
* URL:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1019&lang=jp
*
* @author iga-c
*/
public class P1019_Vampirish_Night {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Scanner sc = new Scanner(System.in);
int n,k;
while(true){
n = sc.nextInt();
k = sc.nextInt();
if(n==0 && k==0){
break;
}
int[][] array = new int[n+1][k];
for(int i=0;i<n+1;i++){
for(int j=0;j<k;j++){
array[i][j] = sc.nextInt();
}
}
for(int i=1;i<n+1;i++){
for(int j=0;j<k;j++){
array[0][j] -= array[i][j];
}
}
boolean flag = true;
for(int i=0;i<k;i++){
if(array[0][i] < 0){
flag = false;
}
}
if(flag){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
}
