比赛 |
20101118 |
评测结果 |
AAAWWWWWWW |
题目名称 |
八 |
最终得分 |
30 |
用户昵称 |
郭乾乐 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2010-11-18 10:40:26 |
显示代码纯文本
#include<cstdio>
using namespace std;
int n,r,l,gc=0;
long long g[16],a[16];
int gy(long long a,long long b)
{
long long r;
while(a%b!=0)
{
r=a%b;
a=b;
b=r;
}
return b;
}
bool pan[16];
int chu()
{
int j,i;
long long sum=0;
for(i=1;i<=n;i++)
if(!pan[i])
{
for(j=1;j<=n;j++)
if(i!=j&&!pan[j])
{
int t=g[i]*g[j]/gy(g[i],g[j]);
sum+=(r/t-l/t);
pan[j]=true;
}
pan[i]=true;
}
return sum;
}
int main()
{
freopen("eight.in","r",stdin);
freopen("eight.out","w",stdout);
int t,i,j,sum=0,del=0;
int ci=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d%d",&l,&r);
if(r-l<=500000||(r-l<=1000000&&n<=10))
{
for(i=l;i<=r;i++)
if(i%8==0)
{
bool pp=true;
for(j=1;j<=n;j++)
if(i%a[j]==0&&i%a[j]==0)
{
pp=false;
break;
}
if(pp)
ci++;
}
printf("%d",ci);
return 0;
}
else
{
sum+=(r/8-l/8);
for(i=1;i<=n;i++)
{
if(a[i]%8==0)
{
t=a[i]*8/gy(a[i],8);
g[++gc]=t;
del+=(r/a[i]-l/a[i]);
}
else
{
t=gy(a[i],8);
t=a[i]*8/t;
g[++gc]=t;
del+=(r/t-l/t);
}
}
long long x=chu();
sum=sum-del+x;
printf("%d\n",sum);
return 0;
}
}