*0500 Card Game http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0500 カードゲームの合計点を求める問題。 順に2人が1枚つずつカードを出し大きな値のカードを出した方がカードの得点を得ます。 解法 指定されたとおりに書くだけです。 #include<stdio.h> int main(){ int n,p1,p2,c1,c2; while(scanf("%d",&n),n>0){ p1=p2=0; while(n--){ scanf("%d %d",&c1,&c2); if(c1==c2){ p1+=c1; p2+=c2; }else if(c1>c2){ p1+=c1+c2; }else{ p2+=c1+c2; } } printf("%d %d\n",p1,p2); } } ---- *0502 Data Conversion http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0501 入力された文字を変換表に従って変換して出力する問題です。 解法 定義通りに変換表mapを作ってそれと照合するだけで済みます。 #include<stdio.h> #include<string.h> int main(){ int n,m; char map[255],c1,c2; while(scanf("%d",&n),n>0){ memset(map,-1,255); while(n--){ scanf(" %c %c",&c1,&c2); map[c1]=c2; } scanf("%d",&m); while(m--){ scanf(" %c",&c1); printf("%c",map[c1]==-1?c1:map[c1]); } printf("\n"); } }