哈希表求助
查看原帖
哈希表求助
1276544
luoguerepp楼主2024/5/13 19:58

5,8,15WA 16,17RE

#include<iostream>
#include<unordered_map>

using namespace std;

const int N = 1e6 + 10;

int t,id,n;
int a[N];

void work(){
	int maxn = -2e9,minn = 2e9;
	unordered_map<int,int> mp;

    scanf("%d",&n);
    if(n < 4){//特判
    	printf("No\n");
    	return;
	}
    for(int i = 0; i < n; i++){
        scanf("%d",&a[i]);
        maxn = max(maxn,a[i]);
        minn = min(minn,a[i]);
        mp[a[i]]++;
    }
    mp[maxn]--,mp[minn]--;//删去两个最值
    int x = maxn + minn;
    for(int i = 0; i < n; i++){
        if(!mp[a[i]]) continue;//跳过最值
        if(mp[x - a[i]]){
            printf("Yes\n");
            return;
        }
    }
    printf("No\n");
}
int main(){
    scanf("%d%d",&t,&id);
    while(t--) work();
    return 0;
}
2024/5/13 19:58
加载中...