Cod sursa(job #637369)

Utilizator cosmyoPaunel Cosmin cosmyo Data 20 noiembrie 2011 14:05:13
Problema Ciuperci Scor 20
Compilator cpp Status done
Runda .com 2011 Marime 0.58 kb
#include <fstream>
using namespace std;
const long long MOD = 666013;
int MODULO[1005];
int ARBORE(long long N){
	if(N == 2)
		return 1;
	if(N == 1)
		return 0;
	if(N % 2 == 1){
		int x = ARBORE((N-1) / 2);
		return x + x;
	}
	else{
		int x = ARBORE(N / 2);
		int y = ARBORE((N - 1) / 2);
		return x + y + 1;
	}
}
int main() {
	ifstream fin("ciuperci.in");
	ofstream fout("ciuperci.out");
	int Q;
	MODULO[0] = 1;
	for(int i = 1; i <= 1000; ++i)
		MODULO[i] = (MODULO[i - 1] * 2) % MOD;
	long long N;
	fin >> Q;
	for(; Q; --Q){
		fin >> N;
		fout << MODULO[ARBORE(N)] << '\n';
	}

	return 0;
}