文章

16

粉丝

0

获赞

34

访问

688

头像
三个数的和 题解:
P5286 武汉大学2024年机试题
发布于2026年3月23日 16:38
阅读数 64

#include <bits/stdc++.h>
using namespace std;
unordered_map<int,int> mp;
set<tuple<int,int,int>> st;
int main()
{
	int n;
	cin >> n;
	vector<int> nums;
	for(int times = 0;times < n;++times)
	{
		int temp;
		cin >> temp;
		nums.push_back(temp);
	}
	sort(nums.begin(),nums.end(),[](int a,int b){
		return a<b;
	});
	for(int i =0;i < n;++i)
	{
		mp[nums[i]] = i;
	}

	int last_num = INT_MIN;
	for(int i =0;i < n;++i)
	{
		int a = nums[i];
		if(a == last_num) continue;
		last_num = a;

		int last_num2 = INT_MIN;
		for(int j = 0;j < n;++j)
        {
            if(i == j) continue;
            int b = nums[j];
            if(last_num2 == b) continue;
            last_num2 = b;
            int need = -(a+b);

            if(mp.find(need) != mp.end() && mp[need] != i && mp[need] != j)
            {
                int ans[3] = {a,b,need};
                sort(ans,ans+3,[](int a,...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发