0
点赞
收藏
分享

微信扫一扫

1048 Find Coins (25 分)

素锦时年_1b00 2022-02-16 阅读 38

1048 Find Coins (25 分)

题意

给出一个数m,要你用n个数中的两个数a ,b,a<=b 组成m,有多种情况则选a最小的情况。n个数都为不大于500的正整数,可能有相通的数。
n ≤10 ^5
m ≤ 10^3

思路

因为所有数都不超过500,直接暴力枚举500内的两个数之和是否等于m。
输入时记录500内每个数的个数,当两个数之和为m,且n个数中有这两个数时即可。

代码

#include<stdio.h>
#include<string.h>

int main()
{
	int n,m,money[507],vis[507],x,flag=0;
	memset(vis,0,sizeof(vis));
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++){
		scanf("%d",&x);
		vis[x]++;
	}
	for(int i=1;i<=500;i++){
		for(int j=1;j<=500;j++){
			if(i+j==m){
				if(i!=j&&vis[i]>0&&vis[j]>0){
					printf("%d %d\n",i,j);
					return 0;
				}else if(i==j&&vis[i]>=2){
					printf("%d %d\n",i,j);
					return 0;
				}
			}
		}
	}
	printf("No Solution\n");
	return 0;
}
举报

相关推荐

0 条评论