Pagini recente » Cod sursa (job #106639) | Cod sursa (job #571137) | Cod sursa (job #1217321) | Cod sursa (job #1195661) | Cod sursa (job #1389905)
#include <iostream>
#include <cstdio>
#include <bitset>
#include <vector>
using namespace std;
class Buffer{
public:
long maxBuf,pos;
vector<char> Buff;
Buffer(char fileName[],long buffSize){
freopen(fileName,"r",stdin);
maxBuf = buffSize; Buff.resize(maxBuf);
reFill();
}
Buffer& operator>>(long long &dest){
while(!isDigit(Buff[pos])){
pos++;
if(pos == maxBuf) reFill();
}
dest = 0;
while(isDigit(Buff[pos])){
dest = dest*10 + Buff[pos++] - '0';
if(pos == maxBuf) reFill();
}
return *this;
}
private:
bool isDigit(char c){
return c >= '0' & c <= '9';
}
void reFill(){
fread(&Buff[0],1,maxBuf,stdin); pos = 0;
}
};
#define cntRead 276997
#define mod 1000000
#define mod1 666013
#define mod2 366117
#define mod3 733571
#define cin fin
long i,cnt;
long long x,n;
bitset<mod+11> B;
inline long long h1(long long x){
return x%mod1;
}
inline long long h2(long long x){
return x%mod2;
}
inline long long h3(long long x){
return x%mod3;
}
int main()
{
Buffer cin("dtcsu.in",1024*256);
freopen("dtcsu.out","w",stdout);
x=3;
for(i=1;i<=cntRead;i++){
cin >> x;
if(x&1)
B[h1(x)]=1;B[h2(x)]=1;B[h3(x)]=1;
}
cin >> n;
for(i=1;i<=n;i++){
cin >> x;
x /= (x^(x-1))&x;
if(B[h1(x)]==1 && B[h2(x)]==1 && B[h3(x)]==1) cnt++;
}
printf("%ld",cnt);
return 0;
}