Pagini recente » Monitorul de evaluare | Cod sursa (job #2539062) | Cod sursa (job #592130) | Cod sursa (job #1907187) | Cod sursa (job #1041177)
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
int q,sol,i,st,dr,n,mij;
long long nr;
string s;
vector<long long>v;
int main()
{
n=276997;
while(n--)
{
getline(f,s);
nr=0;
for(i=0;i<s.size();++i)nr=nr*10+(s[i]-'0');
if(nr&1)v.push_back(nr);
}
sort(v.begin(),v.end());
getline(f,s);
for(i=0;i<s.size();++i)q=q*10+(s[i]-'0');
while(q--)
{
getline(f,s);
nr=0;
for(i=0;i<s.size();++i)nr=nr*10+(s[i]-'0');
if(nr)
{
nr/=(nr&(-nr));
st=0,dr=v.size()-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]==nr){++sol;break;}
else if(v[mij]<nr)st=mij+1;
else dr=mij-1;
}
}
}
g<<sol<<'\n';
return 0;
}