WA ON t3 9th 调不出来
查看原帖
WA ON t3 9th 调不出来
534430
amxxxxx楼主2024/12/21 14:54
#include<bits/stdc++.h>
typedef long long i64;
using namespace std;
const int N=2e5+10;
int visa[N*2],visb[N*2];
int n,m,q;
i64 a[N+1]={},b[N+1]={};
i64 suma=0,sumb=0;
bool check(i64 x,i64 s,bool f){
    if(f==false){
        if(abs(suma-x)<=2e5&&abs(sumb-s)<=2e5&&visa[N+suma-x]&&visb[N+sumb-s])return 1;
        if(abs(suma-s)<=2e5&&abs(sumb-x)<=2e5&&visa[N+suma-s]&&visb[N+sumb-x])return 1;
        if(abs(suma+x)<=2e5&&abs(sumb+s)<=2e5&&visa[N+suma+x]&&visb[N+sumb+s])return 1;
        if(abs(suma+s)<=2e5&&abs(sumb+x)<=2e5&&visa[N+suma+s]&&visb[N+sumb+x])return 1;
    }
    if(f==true){
        if(abs(suma-x)<=2e5&&abs(sumb+s)<=2e5&&visa[N+suma-x]&&visb[N+sumb+s])return 1;
        if(abs(suma+x)<=2e5&&abs(sumb-s)<=2e5&&visa[N+suma+x]&&visb[N+sumb-s])return 1;
        if(abs(suma-s)<=2e5&&abs(sumb+x)<=2e5&&visa[N+suma-s]&&visb[N+sumb+x])return 1;
        if(abs(suma+s)<=2e5&&abs(sumb-x)<=2e5&&visa[N+suma+s]&&visb[N+sumb-x])return 1;
    }
    return 0;
}
void solve(){
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        suma+=a[i];
        visa[a[i]+N]=1;
    }
    for(int i=1;i<=m;i++){
        cin>>b[i];
        sumb+=b[i];
        visb[b[i]+N]=1;
    }
    
    while(q--){
        i64 x;
        cin>>x;
        bool f=false;
        if(x<0){
            f=true;
            x=abs(x);
        }
        int flag=0;
        for(i64 i=1;i<=sqrt(x);i++){
            if(x%i==0&&check(i,x/i,f)){
                cout<<"YES"<<endl;
                flag=1;
            }
        }
        if(flag==0)cout<<"NO"<<endl;
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    solve();
    return 0;
}
2024/12/21 14:54
加载中...