⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1496.txt

📁 杭电acm解题报告2001---2099.
💻 TXT
字号:


#include <cstdio>
#include <memory>
#include <ctime>
using namespace std;

const int Max=2000000;
const int POS=1000000;

int a[4];
int solve;
int pre[Max+100];
int sq[110];

inline void cal(int a,int b)
{
    int i,j,k;
    
    for(i=1;i<=100;i++)
    {
        for(j=1;j<=100;j++)
        {
            pre[ sq[i]*a+sq[j]*b+POS ]++;
        }
    }
}

int main()
{
    int i,j,k,it;
    int flag;
    int stime;

    for(i=1;i<=100;i++)
        sq[i]=i*i;

    while(scanf("%d %d %d %d",&a[0],&a[1],&a[2],&a[3])==4)
    {
        //stime=clock();

        flag=0;
        for(i=0;i<4;i++)
            if(a[i]>0)
                flag++;
            else
                flag--;
        if(flag==4 || flag==-4)
        {
            printf("0\n");
        }
        else
        {
            solve=0;
            memset(pre,0,sizeof(pre));

            cal(a[0],a[1]);
            
            for(i=1;i<=100;i++)
                for(j=1;j<=100;j++)
                {
                    it = sq[i]*a[2]+sq[j]*a[3]+POS ;
                    solve += pre[Max-it];
                }
            
            printf("%d\n",solve*16);
            //printf("%dms\n",clock()-stime);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -