Cod sursa(job #1495368)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 2 octombrie 2015 23:31:52
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <cstdio>
#include <cstring>
#include <tr1/unordered_set> // chiar nu stiam ca exista chestia asta
#define DIM 276997
using namespace std;

tr1::unordered_set <long long> mySet;

int Q, nr, i;
long long X;

void read(long long &number){

    char *S;
    S = new char[20];
    for(int i = 0; i < 20; i ++)
        S[i] = 0;

    scanf("%s", S + 1);
    for(int i = 1; S[i]; i ++)
        number = number * 1LL * 10 + (S[i] - '0');

    //printf("%lld\n", number);
    return;
}

int main(){

    freopen("dtcsu.in" ,"r", stdin );
    freopen("dtcsu.out","w", stdout);

    for(i = 1; i <= DIM; i ++){
        read(X);

        if( (X & 1) )
            mySet.insert(X);
    }

    scanf("%d", &Q);
    for(i = 1; i <= Q; i ++){
        read(X);

        X /= (X & ( -X ));

        if(mySet.find(X) != mySet.end()) // inspired by other well respected programmers
            nr ++;
    }

    printf("%d\n", nr);

    fclose(stdin );
    fclose(stdout);

    return 0;
}