All pastes #1059166 Raw Edit

Anonymous

public text v1 · immutable
#1059166 ·published 2008-06-30 16:53 UTC
rendered paste body
#include <iostream>
#include <vector>
#include <algorithm>

#define SZ(a) (int)(a).size()

using namespace std;

string solve (string &num, string &sourceLang, string &targetLang)
{
	int sBase = SZ(sourceLang);
	long long n = 0, multiplier = 1;
	
	for(int i = SZ(num) - 1; i >= 0; i--)
	{
		n += sourceLang.find(num[i]) * multiplier;
		multiplier *= sBase;
	}
	
	//cout<<"number = "<<n<<endl;
	string ans = "";
	int tBase = SZ(targetLang), rem;
	while(n > 0)
	{
		rem = n % tBase;
		ans.push_back(targetLang[rem]);
		n /= tBase;
	}
	
	reverse(ans.begin(), ans.end());
	return ans;
}

int main()
{
	int N, i = 1;
	cin >> N;
	char ip[200];
	string ln, num, sourceLang, targetLang;
	cin.clear();
	cin.ignore();
	
	while(N--)
	{
		cin.getline(ip, 200);
		ln = ip;
		int sp1 = ln.find(" ");
		num = ln.substr(0, sp1);
		int sp2 = ln.find(" ", sp1 + 1);
		sourceLang = ln.substr(sp1 + 1, sp2 - sp1 - 1);
		targetLang = ln.substr(sp2 + 1);		
		
		//cout<<ln<<endl;
		//cout<<num<<" "<<sourceLang<<" "<<targetLang<<endl;
		cout << "Case #" << i++ <<": "<<solve(num, sourceLang, targetLang)<<endl;	
	}
	return 0;
}