Cod sursa(job #1132495)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 3 martie 2014 15:27:53
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<string.h>
using namespace std;

long long x;
int N,sol;
string aux;
vector <long long> v;

int main() {

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

        x=0;
        getline(in,aux);
        for(i=0;i<aux.size();++i)
            x=x*10+(aux[i]-'0');

        if(x%2==1)
            v.push_back(x);
    }
    sort(v.begin(),v.end());
    in>>N;
    getline(in,aux);
    for(i=1;i<=N;i++) {

        x=0;
        getline(in,aux);
        for(i=0;i<aux.size();++i)
            x=x*10+aux[i]-'0';

        if(x) {
            x=x/(x&(-x));
            st=0;dr=v.size()-1;
            while(st<=dr) {
                mij=(st+dr)/2;
                if(v[mij]==N) {
                    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;

}