Cod sursa(job #1202479)

Utilizator andreioneaAndrei Onea andreionea Data 28 iunie 2014 00:38:51
Problema Dtcsu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <unordered_set>
#include <fstream>
#define INFILE "dtcsu.in"
#define OUTFILE "dtcsu.out"

using std::unordered_set;
using std::ifstream;
using std::ofstream;

inline long long strip_decimal_zeros(long long l)
{
	long long ret = l;
	while (l % 10 == 0)
		l /= 10;
	return l;
}

inline long long strip_binary_zeros(long long l)
{
	while (!(l & 1))
		l >>= 1;
	return l;
}

inline long long strip_long(long long l)
{
	return strip_binary_zeros(strip_decimal_zeros(l));
}

int main()

{
	unordered_set<long long> table;
	ifstream fin(INFILE);
	long long Q, N;
	for (auto i = 0; i < 276997; ++i) {
		fin >> N;
		table.insert(strip_long(N));
	}
	fin >> Q;
	long long res = 0;
	auto endIterator = table.end();
	for (auto i = 0; i < Q; ++i) {
		fin >> N;
		if (table.find(strip_long(N)) != endIterator)
			++res;
	}
	fin.close();
	ofstream fout(OUTFILE);
	fout << res;
	fout.close();
}