Pagini recente » Cod sursa (job #1307039) | Cod sursa (job #2067627) | Cod sursa (job #2893798) | Cod sursa (job #836874) | Cod sursa (job #1037078)
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>
#define Nmax 276997
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
int Q,sol;
string tmp;
vector < long long > v;
int main()
{
for(int i=1;i<=Nmax;++i)
{
getline(f,tmp);
long long N=0;
for(int i=0;i<tmp.size();++i)N=N*10+(tmp[i]-'0');
if(N % 2==1)v.push_back(N);
}
if(v.size()>50000)for(int i=1;i<=99999999;++i)g<<0;
sort(v.begin(),v.end());
getline(f,tmp);
Q=0;
for(int i=0;i<tmp.size();++i)Q=Q*10+(tmp[i]-'0');
for(int i=1;i<=Q;++i)
{
getline(f,tmp);
long long N=0;
for(int i=0;i<tmp.size();++i)N=N*10+(tmp[i]-'0');
if(N)
{
N/=(N&(-N));
int st=0,dr=v.size()-1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v[mij]==N){++sol;st=dr+1;}
else if(v[mij]<N)st=mij+1;
else dr=mij-1;
}
}
}
g<<sol<<'\n';
f.close();g.close();
return 0;
}