Pagini recente » Cod sursa (job #319536) | Cod sursa (job #2256781) | Cod sursa (job #723687) | Cod sursa (job #1626085) | Cod sursa (job #1035723)
#include<fstream>
#include<algorithm>
#include<cstdlib>
#define NMAX 276997
#define LL long long
using namespace std;
ifstream fin("dtcsu.in");
ifstream fin2("dtcsu.in");
ofstream fout("dtcsu.out");
int v[]={3,7,11},q,sol;
LL n,nr;
const int SZ=500000;
char input[SZ+1],*in;
inline LL atoi()
{
for(;!(*in>='0' && *in<='9') && *in;in++);
if(!*in)
{
fin.read(input,SZ);
in=input;
for(;!(*in>='0' && *in<='9') && *in;in++);
}
for(nr=0LL;*in>='0' && *in<='9';in++)
{
nr=nr*10+(*in-'0');
if(!*(in+1))
{
fin.read(input,SZ);
in=input-1;
}
}
return nr;
}
ifstream& GotoLine(ifstream& file, int num){
file.seekg(std::ios::beg);
for(int i=0; i < num - 1; ++i){
file.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
}
return file;
}
int main()
{
fin.read(input,SZ);
in=input;
for(int i=0;i<NMAX;i++)
n=atoi();
q=atoi();
for(int L,R;q;q--)
{
L=1;
R=NMAX;
n=atoi();
for(int middle,val;L<=R;)
{
middle=(L+R)/2;
GotoLine(fin2,middle);
fin2>>val;
if(val==n)
{
sol++;
break;
}
if(val<n)
L=middle+1;
else
R=middle-1;
}
}
fout<<sol;
return 0;
}