Cod sursa(job #1495385)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 3 octombrie 2015 00:09:49
Problema Dtcsu Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <unordered_set> // chiar nu stiam ca exista chestia asta
#define DIM 276997
using namespace std;

FILE *fin = fopen("dtcsu.in" ,"r");
FILE *fout= fopen("dtcsu.out","w");

unordered_set <long long> mySet;

int Q, nr, i;
long long X;

long long ub(long long X){
    return (( X ^ (X-1)) & X);
}

int main(){

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

    for(i = 1; i <= DIM; i ++){
        fscanf(fin, "%lld", &X);

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

    fscanf(fin, "%d", &Q);
    for(i = 1; i <= Q; i ++){
        fscanf(fin, "%lld", &X);

        if(!X) continue;

        X /= ub(X);

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

    fprintf(fout, "%d\n", nr);

    fclose(stdin );
    fclose(stdout);

    return 0;
}