Cod sursa(job #1881023)

Utilizator robx12lnLinca Robert robx12ln Data 16 februarie 2017 09:08:03
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<cstdio>
#include<vector>
#define MOD 666013
using namespace std;
FILE * fin = fopen( "dtcsu.in", "r" );
FILE * fout = fopen( "dtcsu.out", "w" );
int n = 276997, m, sol;
long long x, p;
vector<long long> v[MOD];

int search( long long val, int k ){

    for( int i = 0; i < v[k].size(); i++ ){
        if( v[k][i] == val )
            return 1;
    }

    return 0;

}

int main(){

    for( int i = 1; i <= n; i++ ){
        fscanf( fin, "%lld", &x );
        p = ( x & (-x) );
        x /= p;
        if( x == 1 )
            continue;
        v[x % MOD].push_back( x );
    }

    fscanf( fin, "%d", &m );
    sol = 0;

    for( int i = 1; i <= m; i++ ){
        fscanf( fin, "%lld", &x );
        p = ( x & (-x) );
        x /= p;
        if( x == 1 ){
            sol++;
            continue;
        }
        sol += search( x, x % MOD );
    }

    fprintf( fout, "%lld", sol );

    return 0;
}