Cod sursa(job #1502774)

Utilizator Ionut228Ionut Calofir Ionut228 Data 14 octombrie 2015 23:50:03
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <cstring>
#include <map>

using namespace std;

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

char sir[25];
int Q, lg, sol;
long long N;
map<long long, int> H;

int main()
{
    long long x;
    for (int i = 1; i <= 276997; ++i)
    {
        fin.getline(sir + 1, 25);
        lg = strlen(sir + 1);
        x = 0LL;
        for (int j = 1; j <= lg; ++j)
            x = x * 10 + (long long)(sir[j] - '0');

        if (x & 1LL)
            H[x] = 1;
    }
    fin.getline(sir + 1, 25);
    lg = strlen(sir + 1);
    for (int i = 1; i <= lg; ++i)
        Q = Q * 10 + (int)(sir[i] - '0');
    while (Q--)
    {
        fin.getline(sir + 1, 25);
        lg = strlen(sir + 1);
        N = 0LL;
        for (int i = 1; i <= lg; ++i)
            N = N * 10 + (long long)(sir[i] - '0');

        N /= (N & -N);

        sol += H[N];
    }

    fout << sol << '\n';

    fin.close();
    fout.close();
    return 0;
}