Cod sursa(job #1030355)

Utilizator NitaMihaitavoidcube NitaMihaita Data 15 noiembrie 2013 16:15:39
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda FMI No Stress 4 Marime 1.04 kb
/*#include<stdio.h>
#include<stdlib.h>*/
#include<math.h>
#include<fstream>
using namespace std;
long long v[276998];
int L=276997,A;
bool CB(long long n)
{
    long long pas=(1<<A),poz=0;
    while(pas)
    {
        if(poz+pas<=L && v[poz+pas]<=n)
                poz+=pas;
        pas>>=1;
    }
    return v[poz]==n;
}
int main()
{
    /*
    FILE *f,*g;
    f=fopen("dtcsu.in","r");
    g=fopen("dtcsu.out","w");
    */
    ifstream f("dtcsu.in");
    ofstream g("dtcsu.out");
    long long n;
    int q,i,j,nr=0;
    char s[20];
    //fscanf(f,"%ld",&L);
    for(i=1;i<=L;++i)
    {
        //fscanf(f,"%ld",&v[i]);
        f.getline(s,50);
        for(j=0;s[j]!='\0';++j)
            v[i]=v[i]*10+(s[j]-48);
    }
    A=log2(L);
    //fscanf(f,"%ld",&q);
    //printf("%ld\n",q);
    f>>q;
    for(i=1;i<=q;++i)
    {
        f>>n;
        if(CB(n)==true)++nr;
        //printf("%ld\n",i);
    }
    g<<nr<<"\n";//fprintf(g,"%ld\n",nr);
    f.close();//fclose(f);
    g.close();//fclose(g);
    return 0;
}