CSES-1640 Sum of Two Values

题目传送门icon-default.png?t=O83Ahttps://vjudge.net/problem/CSES-1640#author=GPT_zh

解题思路

可以开一个数组标记每个数的位置。

遍历 i,查看 x-a_i 是否存在,若存在直接输出。

否则就是无解。

由于 a_i 过大,可以使用 map 标记。

代码

#include
using namespace std;

int n,a[200001],m;
map flag;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		flag[a[i]]=i;
	}
	
	for(int i=1;i<=n;i++)
	{
		if(flag[m-a[i]]!=0&&i!=flag[m-a[i]])
		{
			cout<

你可能感兴趣的:(算法,c++)