求助(30分)
查看原帖
求助(30分)
1224587
amd47802574楼主2024/7/26 11:49

不要答案,只想知道我的答案为什么错了

#include<bits/stdc++.h>
#include<unordered_map>
#define LL long long
#define IOS ios::sync_with_stdio
#define ct cin.tie(0)
using namespace std;

unordered_map<int, int> mp;
vector<int> v;
int ans;
void solve()
{
	int n;
	cin >> n;
	v.resize(n);
	for (int i = 0; i < n; i++) {
		cin >> v[i];
		mp[v[i]] = 1;
	}
	sort(v.begin(), v.end());
	for (int i = 0; i < v.size()-2; i++) {
		for (int j = i + 1; j < v.size()-1; j++) {
			if (mp.count(v[i] + v[j])) {
				cout << v[i] << "+" << v[j] << "=" << v[i] + v[j] << endl;//为了查看过程
				ans++;
			}
		}
	}
	cout << ans;
}

int main()
{
	IOS;
	ct;
	solve();

	return 0;
}

#2测试点数据
输入:
100
6094 106 5958 877 3352 8959 292 9253 3860 448 5709 8295 4667 2588 3663 2486 1129 8870 3126 6203 727 4316 6541 9689 8818 2119 7331 7598 1879 7303 1100 8740 4567 2649 2373 7505 5848 4337 9953 4436 8395 8273 1028 4449 3363 6254 7856 6710 8422 3833 5690 6664 6326 2550 119 2075 3475 9024 3239 8889 807 543 8103 1441 9731 3873 5194 9557 3256 6245 3266 2777 4552 2390 8550 4777 9701 5694 9133 6736 2586 298 3695 1992 2958 3831 6905 8134 989 6292 8967 118 8442 1765 931 4760 5945 1703 6262 1671
输出:22

这是我的答案:
118+4449=4567
292+8103=8395
298+2075=2373
298+2958=3256
298+8442=8740
448+1671=2119
448+6262=6710
448+8422=8870
448+9253=9701
807+3860=4667
877+2486=3363
989+2486=3475
1100+6203=7303
1441+2390=3831
1441+3126=4567
1671+1992=3663
1703+1992=3695
2119+6905=9024
2373+3475=5848
2373+4337=6710
2486+6254=8740
2550+3695=6245
2586+5709=8295
3363+6326=9689
3695+5194=8889
4337+4552=8889
26
2024/7/26 11:49
加载中...