Pagini recente » Cod sursa (job #750978) | Cod sursa (job #2879529) | Cod sursa (job #751180) | Cod sursa (job #1562114) | Cod sursa (job #2794977)
#pragma GCC optimize("O3")
#include <unordered_map>
#include <stdio.h>
#include <ctype.h>
inline long long readINT( FILE *fin ) {
int ch;
long long rez = 0;
while( !isdigit( ( ch = fgetc( fin ) ) ) );
do
rez = rez * 10 + ch - '0';
while( isdigit( ( ch = fgetc( fin ) ) ) );
return rez;
}
std::unordered_map<long long, int> v;
long long Exp[] = { 30, 16, 8, 4, 2, 1 };
long long Pow[ 6 ], rez;
int main()
{
for( int i = 0; i < 6; i++ )
Pow[ i ] = 1 << Exp[ i ];
FILE *fin = fopen( "dtcsu.in", "r" );
for( int i = 0; i < 276997; i++ ) {
long long x = readINT( fin );
if( x & 1 )
v[ x ] = i;
}
long long n = readINT( fin );
for( int i = 0; i < n; i++ ) {
long long val = readINT( fin );
if( !( val & 1 ) ) {
if( !( val & Pow[ 0 ] - 1 ) )
val >>= 30;
if( !( val & Pow[ 1 ] - 1 ) )
val >>= 16;
if( !( val & Pow[ 2 ] - 1 ) )
val >>= 8;
if( !( val & Pow[ 3 ] - 1 ) )
val >>= 4;
if( !( val & Pow[ 4 ] - 1 ) )
val >>= 2;
if( !( val & Pow[ 5 ] - 1 ) )
val >>= 1;
}
rez += ( v.find( val ) != v.end() );
}
FILE *fout = fopen( "dtcsu.out", "w" );
fprintf( fout, "%lld\n", rez );
fclose( fout );
return 0;
}