Pagini recente » Cod sursa (job #1731689) | Cod sursa (job #1663189) | Cod sursa (job #994048) | Cod sursa (job #2671271) | Cod sursa (job #2794974)
#pragma GCC optimize("O3")
#include <unordered_map>
#include <stdio.h>
#include <ctype.h>
inline int readINT( FILE *fin ) {
int ch, rez = 0;
while( !isdigit( ( ch = fgetc( fin ) ) ) );
do
rez = rez * 10 + ch - '0';
while( isdigit( ( ch = fgetc( fin ) ) ) );
return rez;
}
std::unordered_map<int, int> v;
int Exp[] = { 30, 16, 8, 4, 2, 1 };
int 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++ ) {
int x = readINT( fin );
if( x & 1 )
v[ x ] = i;
}
int n = readINT( fin );
for( int i = 0; i < n; i++ ) {
int 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, "%d\n", rez );
fclose( fout );
return 0;
}