记录编号 |
80321 |
评测结果 |
AAAAAAAAAA |
题目名称 |
横幅 |
最终得分 |
100 |
用户昵称 |
Launcher |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.104 s |
提交时间 |
2013-11-07 07:34:22 |
内存使用 |
8.12 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
int a[1002][1002]={0};
int f[100002][3]={0};
int r[5][3]={0};
long long ans=0;
int abss(int x)
{
if (x<0)
return -x;
else
return x;
}
int gcd(int x,int y)
{
int t;
if (y==0)
return x;
else
return gcd(y,x%y);
}
int check(int x1,int y1,int x2,int y2)
{
int xx,yy,q;
if ((x1>=0)&&(y1>=0)&&(x1<=n)&&(y1<=m))
{
xx=abss(x2-x1);
yy=abss(y2-y1);
if (xx<yy)
q=gcd(yy,xx);
else
q=gcd(xx,yy);
if (q==1)
{
ans++;
cout<<x1<<' '<<y1<<' '<<x2<<' '<<y2<<endl;
}
}
}
int main()
{
freopen("banner.in","r",stdin);
freopen("banner.out","w",stdout);
int i,j,k,x,y,t,l;
cin>>n>>m>>x>>y;
r[1][1]=1; r[1][2]=1;
r[2][1]=-1;r[2][2]=1;
r[3][1]=1;r[3][2]=-1;
r[4][1]=-1;r[4][2]=-1;
t=0;
for (i=1;i<=n+1;i++)
for (j=1;j<=m+1;j++)
{
if (gcd(i,j)==1)
if ((j*j+i*i>=x*x)&&(j*j+i*i<=y*y))
{
ans+=(n-i+1)*(m-j+1)*2;
}
}
if (x*x<=1)
ans+=n*(m+1) + m*(n+1);
cout<<ans<<endl;
return 0;
}