- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
#include <stdio.h>
#include <stdlib.h>
//確認用
void print(int a[])
{
for(int i=0; i<4; i++){
printf("%d ", a[i]);
}
printf("\n");
}
int main(void)
{
int a[4];
while(1){
scanf("%d %d %d %d", &a[0], &a[1], &a[2], &a[3]);
if(a[0]==0 && a[1]==0 && a[2]==0 && a[3]==0){
break;
}
print(a);
while(1){
//print(a);
//最小値とその場所と0以外の腕の数を数える
int min=101, min_no, count=0;
for(int i=0; i<4; i++){
if(a[i]>0){
count++;
if(a[i]<min){
min=a[i];
min_no=i;
}
}
}
printf("min=%d min_no=%d count=%d\n", min, min_no, count);
//0以外の腕の数が1だったらループ終了
if(count==1){
printf("%d\n", a[min_no]);
break;
}else{
//0以外の腕で、最小値の場所でない腕から最小値を引く
for(int i=0; i<4; i++){
if(a[i]>0){
if(i!=min_no){
a[i]-=min;
}
}
}
}
print(a);
}
printf("\n");
}
return(0);
}