Pagini recente » Cod sursa (job #933026) | Rezultatele filtrării | Rezultatele filtrării | Profil wekillbysignal | Cod sursa (job #1665437)
#include <bits/stdc++.h>
#include <tr1/unordered_set>
using namespace std;
tr1 :: unordered_set <long long> my_set;
int N, answer; long long X;
class input_reader {
private:
FILE *input_file;
static const int SIZE = 1 << 17;
char buffer[SIZE]; int cursor;
inline void advance() {
if( ++cursor == SIZE ) {
cursor = 0;
fread( buffer, SIZE, 1, input_file );
}
return;
}
inline char current() {
return buffer[cursor];
}
public:
input_reader( const char *file_name, const char *file_type ) {
input_file = fopen( file_name, file_type ); cursor = 0;
fread( buffer, SIZE, 1, input_file );
}
template <class type>
input_reader &operator >>( type &value ) {
value = 0;
while( current() < '0' || current() > '9' )
advance();
while( current() >= '0' && current() <= '9' ) {
value = value * 10 + ( current() - '0' );
advance();
}
return *this;
}
} input_file( "dtcsu.in", "r" );
FILE *output_file = fopen( "dtcsu.out", "w" );
int main() {
for( int i = 1; i <= 276997; i ++ ) {
input_file >> X;
if( (X & 1) == 1 )
my_set.insert(X);
}
input_file >> N;
for( int i = 1; i <= N; i ++ ) {
input_file >> X;
if( (X & 1) == 0 && (X & (-X)) != 0 )
X /= (X & (-X));
if( my_set.count(X) )
answer ++;
}
fprintf( output_file, "%d\n", answer );
return 0;
}