C/C++の宿題片付けます 133代目
■ このスレッドは過去ログ倉庫に格納されています
0397デフォルトの名無しさん
2009/12/22(火) 23:22:24#include <stdio.h>
#include <stdlib.h>
int main(void)
{
while(1) {
int *s, i, j, n, m, dif=0, flg=0, a, b;
scanf("%d%d", &n, &m);
if(!(n|m)) break;
s = malloc((n+m) * sizeof(int));
for(i=0; i<n; i++) { scanf("%d", s + i); dif += s[i];}
for(; i<n+m; i++) { scanf("%d", s + i); dif -= s[i]; }
dif = abs(dif);
if(!(dif&1))
for(i=0,dif>>=1; i<n; i++)
for(j=n; j<n+m; j++)
if(abs(s[i]-s[j])==dif && (!flg || s[i]+s[j]<a+b))
a = s[i], b = s[j], flg = 1;
printf("Aさんのカード:");
for(i=0; i<n; i++) printf(" %d", s[i]);
printf("\nBさんのカード:");
for(; i<n+m; i++) printf(" %d", s[i]);
if(flg) printf("\nAさんの%dとBさんの%dを交換\n\n", a, b);
else printf("\n合計を等しくする交換はありません\n\n");
free(s);
}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています