#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
struct sKozeni{
int Maisu,SiharaiMaisu;
const int Kingaku;
sKozeni(int kingaku)
:Kingaku(kingaku){}
void Init(){
SiharaiMaisu = 0;
}
};
int main(){
int Siharai;
sKozeni Kozeni[4]={
10,50,100,500
};
while(1){
scanf("%d",&Siharai);
if(Siharai==0){ // 終了条件
break;
}
for(int i=0 ; i<4 ; i++){ // 4種類の硬貨枚数を格納、変数の初期化
scanf("%d",&Kozeni[i].Maisu);
Kozeni[i].Init();
}
// 支払い金額に関係なく、枚数を減らす
int i=0;
while( i != 3 ){
if( (Kozeni[i].Maisu * Kozeni[i].Kingaku) > Kozeni[i+1].Kingaku ){
Kozeni[i].Maisu--;
Kozeni[i+1].Maisu++;
}
else{
i++;
}
}
// 金額の小さな硬貨から出して支払う
i = 0;
while(1){
if( Kozeni[i].Maisu>0 ){
Siharai -= Kozeni[i].Kingaku; // 支払額の更新
Kozeni[i].Maisu--; // 所持枚数を減らす
Kozeni[i].SiharaiMaisu++; // 支払い枚数を増やす
if( Siharai<=0 ){ // 支払い終わったらループ終了
break;
}
}
else{
i++; // 小銭の種類を次へ移す
}
}
// 出力
for(int i=0 ; i<4 ; i++){
if( Kozeni[i].SiharaiMaisu>0 ){
printf("%d %d\n",Kozeni[i].Kingaku,Kozeni[i].SiharaiMaisu);
}
}
puts("");
}
return 0;
}
急上昇Wikiランキング
急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!
最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!
atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!
最近アクセスの多かったページランキングです。話題のページを見に行こう!