博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM挑战程序设计竞赛1.1抽签
阅读量:5242 次
发布时间:2019-06-14

本文共 918 字,大约阅读时间需要 3 分钟。

试题描述

你的朋友提议玩一个游戏:将写有数字的n 个纸片放入口袋中,你可以从口袋中抽取4 次纸片,每次记下纸片上的数字后都将其放回口袋中。如果这4 个数字的和是m,就是你赢,否则就是你的朋友赢。你挑战了好几回,结果一次也没赢过,于是怒而撕破口袋,取出所有纸片,检查自己是否真的有赢的可能性。请你编写一个程序,判断当纸片上所写的数字是k1,k2, …, kn 时,是否存在抽取4 次和为m 的方案。

输入
第一行为两个整数n,m;第二行为n个整数k1,k2, …, kn 。
输出
如果存在,输出“Yes”;否则,输出“No”。
输入示例
3 10
1 3 5
输出示例
Yes
其他说明
1 ≤ n ≤ 50
1 ≤ m ≤ 10^8
1 ≤ ki ≤ 10^8

C程序:

#include 
const int MAX_N = 50;int main() { int n, m, k[MAX_N]; // 从标准输入读入 scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { scanf("%d", &k[i]); } // 是否找到和为m的组合的标记 bool f = false; // 通过四重循环枚举所有方案 for (int a = 0; a < n; a++) { for (int b = 0; b < n; b++) { for (int c = 0; c < n; c++) { for (int d = 0; d < n; d++) { if (k[a] + k[b] + k[c] + k[d] == m) { f = true; } } } } } // 输出到标准输出 if (f) puts("Yes"); else puts("No"); return 0;}

转载于:https://www.cnblogs.com/WHYFRANK/p/4723189.html

你可能感兴趣的文章
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
查看>>
SIGPIPE并产生一个信号处理
查看>>
CentOS
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
爬虫-通用代码框架
查看>>
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
Android弹出框的学习
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>