Cod sursa(job #1039744)

Utilizator Kira96Denis Mita Kira96 Data 23 noiembrie 2013 15:54:53
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<algorithm>
#include<cstring>
#define DIM 100000
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
char s[DIM];
long long nr,v[3*DIM];
int sol,st,dr,mij,t,nb,i,n;
bool cb(long long x)
{
	while(!(x&1))
		x>>=1;
	st=1; dr=t;
	if(x>v[dr])
		return 0;
	while(st<=dr)
	{
		mij=(st+dr)>>1;
		if(x==v[mij])
			return 1;
		if(x>v[mij])
			st=mij+1;
		else
			dr=mij-1;
	}
	return 0;
}
int main ()
{
	f.get(s,DIM,EOF);
	while(s[0])
	{
		n=strlen(s);
		for(i=0;i<n;++i)
		{
			if(s[i]<='9'&&s[i]>='0')
			nr=nr*10+s[i]-'0';
			else
			{
				if(nb>276997)
					sol+=cb(nr);
				else
				if(nb==276997)
				{
					sort(v+1,v+t+1);
					nb++;
				}
				else
				{
					nb++;
					if(nr&1)
						v[++t]=nr;
				}
			}
		}
		f.get(s,DIM,EOF);
	}
	g<<sol;
	return 0;
}