// UVa 10666 - The Eurocup is Here!
#include <iostream>
using namespace std;
#define datatype unsigned long long
int main() {
	datatype p[31];
	p[0] = 1;
	for (int i = 1; i < 31; i++)
		p[i] = p[i - 1] << 1;
	int t;
	for (cin >> t; t; t--) {
		int n;
		datatype m;
		cin >> n >> m;
		int ones = 0;
		datatype j = m;
		for (int i = 0; i < n; i++) {
			if (j % 2 == 1)
				ones++;
			j = j >> 1;
		}
		datatype zeros = 0;
		j = m;
		for (int i = 0; i < n; i++) {
			if (j % 2 == 1)
				break;
			zeros += p[i];
			j = j >> 1;
		}
		cout << ones + 1 << " " << p[n] - zeros << endl;
	}
	return 0;
}
Tuesday, September 1, 2015
UVa 10666 - The Eurocup is Here!
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment