Pagini recente » Cod sursa (job #2537518) | Cod sursa (job #1873684) | Cod sursa (job #1748771) | Cod sursa (job #2495833) | Cod sursa (job #1039765)
#include<fstream>
#include<algorithm>
#include<cstring>
#define DIM 100000
#define C 276997
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
char s[DIM];
long long nr,v[DIM];
int sol,st,dr,mij,t,nb,i,OK,n;
bool cb(long long x)
{
while(x%11==0)
x/=11;
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);
OK=1;
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
{
nb++;
if(nr%11)
v[++t]=nr;
nr=0;
if(nb>C)
{
if(v[t]==nr)
t--;
sort(v+1,v+t+1);
OK=0;
break;
}
}
}
if(!OK)
break;
f.get(s,DIM,EOF);
}
for(;i<n;++i)
{
if(s[i]>='0')
nr=nr*10+s[i]-'0';
else
{
sol+=cb(nr);
nr=0;
}
}
f.get(s,DIM,EOF);
while(s[0])
{
n=strlen(s);
for(i=0;i<n;++i)
{
if(s[i]>='0')
nr=nr*10+s[i]-'0';
else
{
sol+=cb(nr);
nr=0;
}
}
f.get(s,DIM,EOF);
}
g<<sol;
return 0;
}