Cod sursa(job #1066056)

Utilizator blasterzMircea Dima blasterz Data 23 decembrie 2013 23:08:58
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#define Nrlinii 276997
#define MOD 666013

using namespace std;
 
//unordered_set < long long > H;

struct nod {
    long long v;
    nod *next;
};

nod *H[MOD];

inline void add(long long v) {
    int h = int(v % MOD);
    nod *p = new nod;
    p->v = v;
    p->next = H[h];
    H[h] = p;
}

inline bool find(long long v) {
    int h = int(v % MOD);
    for (nod *p = H[h]; p; p = p->next)
        if (p->v == v)
            return true;
    return false;
}
int main()
{
    int Q,i;
    long long sol=0,x;
    int h;
    ifstream fin("dtcsu.in");
    for(i=1;i<=Nrlinii;++i)
    {
        fin>>x;
        if(x&1LL) {
            add(x);
        }
    }
    fin>>Q;
    while(Q--)
    {
        fin>>x;
        if(x && find(x/(x&(-x))))
            ++sol;
    }
    ofstream fout("dtcsu.out");
    fout<<sol<<"\n";
    fout.close();
    return 0;
}