Cod sursa(job #1132532)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 3 martie 2014 16:21:01
Problema Dtcsu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<string.h>
using namespace std;

long long x;
int N,sol;
char aux[35];
vector <long long > v;

int main() {
    ifstream in("dtcsu.in");
    ofstream out("dtcsu.out");
    int i,j,st,dr,mij;
    for(i=1;i<=276997;i++) {

        x=0;
        in.getline(aux,30);
        for(j=0;j<strlen(aux);j++){
            x=x*10+(aux[j]-'0');
        }

        if(x%2==1)
            v.push_back(x);

    }
    sort(v.begin(),v.end());

    in.getline(aux,30);
    for(i=0;i<strlen(aux);i++){
        N=N*10+(aux[i]-'0');
    }

    for(i=1;i<=N;i++) {
        x=0;
        in.getline(aux,30);
        for(j=0;j<strlen(aux);j++){
            x=x*10+(aux[j]-'0');
        }
        if(x) {
            x/=(x&(-x));
            st=0;dr=v.size()-1;
            while(st<=dr) {
                mij=(st+dr)/2;
                if(v[mij]==x) {
                    st=dr+1;
                    sol++;
                }
                if(v[mij]<x)
                    st=mij+1;
                if(v[mij]>x)
                    dr=mij-1;
            }
        }
    }

    out<<sol<<'\n';
    in.close();
    out.close();
    return 0;

}