Cod sursa(job #1041177)

Utilizator Kira96Denis Mita Kira96 Data 25 noiembrie 2013 16:30:57
Problema Dtcsu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#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;
}