AOJ 0500 - Card Game, 0501 - Data Conversion

最近書いて無いからって書いたら,1時を回っていたorz.
この時間帯のツイートにはTopCoder成分が多いんですね.
TopCoder...やりたいけど,英語ができない.

AOJ 0500 - Card Game

通常
#include <iostream>
using namespace std;
int main(){
	int n;
	while(cin >> n,n){
		int a,b,ar = 0,br = 0;
		while(n--){
			cin >> a >> b;
			ar += a>b?a+b:a==b?a:0;
			br += b>a?a+b:a==b?b:0;
		}
		cout << ar << " " << br << endl;
	}
	return 0;
}
ショート
#include<cstdio>
main(){
	int n;
	while(scanf("%d",&n),n){
		int a,b,c = 0,d = 0;
		while(n--){
			scanf("%d%d",&a,&b);
			c+=a>b?a+b:a==b?a:0;
			d+=b>a?a+b:a==b?b:0;
		}
		printf("%d %d\n",c,d);
	}
}

AOJ 0501 - Data Conversion

通常
#include <iostream>
using namespace std;
int main(){
	int n,m;
	while(cin>>n,n){
		char a,b,blist[62] = {0};
		while(n--){
			cin >> a >> b;
			if(a >= 97 && a <= 122)blist[a - 97] = b;
			if(a >= 65 && a <= 90)blist[a - 39] = b;
			if(a >= 48 && a <= 57)blist[a + 4] = b;
		}
		cin >> m;
		string s = "";
		while(m--){
			cin >> a;
			if(a >= 97 && a <= 122)b = blist[a - 97];
			if(a >= 65 && a <= 90)b = blist[a - 39];
			if(a >= 48 && a <= 57)b = blist[a + 4];
			if(b == 0)b = a;
			s+=b;
		}
		cout << s << endl;
	}
}
ショート
#include<iostream>
using namespace std;
main(){
	int n,m;
	while(cin>>n,n){
		char a,b,l[62] = {0};
		while(n--)
			cin >> a >> b,l[a > 96?a - 97:a > 64?a - 39:a > 47?a + 4:0] = b;
		cin >> m;
		string s = "";
		while(m--){
			cin >> a;b = l[a > 96?a - 97:a > 64?a - 39:a > 47?a + 4:0];if(b==0)b = a;s+=b;}
		cout << s << endl;
	}
}