1496.cpp

来自「杭电 acm部分代码 有兴趣的可以下载 谢谢」· C++ 代码 · 共 42 行

CPP
42
字号
#include<iostream>
#include<algorithm>
using namespace std;
int w[101];
int e[10100];
int q[10100];
void main()
{
    int a,b,c,d,i,j,k,t,num;
    int w1[101];
    int w2[101];
    int w3[101];
    int w4[101];
    for(i=0;i<101;i++)
        w[i]=i*i;
    while(cin>>a>>b>>c>>d){
        if((a>0&&b>0&&c>0&&d>0)||(a<0&&b<0&&c<0&&d<0)){
            cout<<"0\n";
            continue;
        }
        num=0;
        for(i=0;i<101;i++){
            w1[i]=a*w[i];
            w2[i]=b*w[i];
            w3[i]=c*w[i];
            w4[i]=d*w[i];
        }
        k=0;
        for(i=1;i<101;i++)
            for(j=1;j<101;j++)
                e[k++]=0-w1[i]-w2[j];
        sort(e,e+k);
        for(i=1;i<101;i++)
            for(j=1;j<101;j++){
                t=w3[i]+w4[j];
                if(binary_search(e,e+k,t))
                    num+=upper_bound(e,e+k,t)-lower_bound(e,e+k,t);
            }
        cout<<num*16<<endl;
    }
}

⌨️ 快捷键说明

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