Cod sursa(job #1041167)

Utilizator Kira96Denis Mita Kira96 Data 25 noiembrie 2013 16:24:00
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>
#define C 276997
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
int q,sol,i,st,dr,mij;
long long nr;
string s;
vector<long long>v;
int main()
{
    for(i=1;i<=C;++i)
    {
        getline(f,s);
        nr=0;
        for(i=0;s[i];++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;s[i];++i)q=q*10+(s[i]-'0');
    while(q--)
    {
        getline(f,s);
        nr=0;
        for(i=0;s[i];++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;st=dr+1;}
                else if(v[mij]<nr)st=mij+1;
                else dr=mij-1;
            }
        }
    }
    g<<sol<<'\n';
    return 0;
}