Pagini recente » Cod sursa (job #602950) | Profil Robert Hangu | Monitorul de evaluare | Cod sursa (job #2015859) | Cod sursa (job #1035318)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
string c;
int Q, sol, dim;
long long nr;
vector < long long > H;
int main()
{
for (int i=1; i<=276997; ++i)
{
getline(f, c);
nr=0; dim=c.size();
for (int i=0; i<dim;++i)
nr=nr*10+(c[i]-'0');
if (nr%2)
H.push_back(nr);
}
sort(H.begin(), H.end());
f>>Q;
for (int i=1; i<=Q; ++i)
{
getline(f, c);
nr=0; dim=c.size();
for (int i=0; i<dim; ++i)
nr=nr*10+(c[i]-'0');
if (nr)
{
nr/=(nr&(-nr));
//if (binary_search(H.begin(), H.end(), nr)) ++sol;
int st=0, dr=H.size()-1;
while (st<=dr)
{
int mij=(st+dr)/2;
if (H[mij]==H[nr]) ++sol, st=dr+1;
else if (H[mij]>nr) dr=mij-1;
else st=mij+1;
}
}
}
g<<sol<<'\n';
return 0;
}