Cod sursa(job #2790553)

Utilizator puica2018Puica Andrei puica2018 Data 29 octombrie 2021 10:47:12
Problema Dtcsu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

#define P 8191

using namespace std;

vector<long long> h[P];

void Adauga(long long x)
{
    int r = x % P;
    h[r].push_back(x);
}

int Cauta(long long x)
{
    int r = x % P;
    for (long long e : h[r])
        if (e == x) return 1;
    return 0;
}

ifstream fin("dtcsu.in");
ofstream fout("dtcsu.out");

int main()
{
    int i, Q, cnt = 0;
    long long x;
    for (i = 1; i <= 276997; i++)
    {
        fin >> x;
        if(x>0)
            x/=(x&(-x));
        if (Cauta(x) == 0)
            Adauga(x);
    }
    fin >> Q;
    for (i = 1; i <= Q; i++)
    {
        fin >> x;
        while (x % 2 == 0) x /= 2;
        cnt += Cauta(x);
    }
    fout << cnt << "\n";
    fout.close();
    return 0;
}