L1-100 四项全能 - java

L1-100 四项全能


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


题目描述:

新浪微博上有一个帖子给出了一道题:全班有 50 人,有 30 人会游泳,有 35 人会篮球,有 42 人会唱歌,有 46 人会骑车,至少有( )人四项都会。

发帖人不会做这道题,但是回帖有会做的:每一个才艺是一个技能点,一共是 30 + 35 + 42 + 46 = 153 个技能点,50 个人假设平均分配,每人都会 3 个技能那也只有 150,所以至少有 3 人会四个技能。

本题就请你写个程序来自动解决这类问题:给定全班总人数为 n,其中有 m 项技能,分别有 k 1 、 k 2 、 . . . . . . 、 k m k_{1}、k_{2}、......、k_{m} k1、k2、......、km 个人会,问至少有多少人 m 项都会。

输入格式:

输入在第一行中给出 2 个正整数:n( 4 ≤ n ≤ 1000 4 \le n \le 1000 4≤n≤1000)和 m( 1 < m ≤ n / 2 1< m \le n / 2 1<m≤n/2),分别对应全班人数和技能总数。随后一行给出 m 个不超过 n 的正整数,其中第 i 个整数对应会第 i 项技能的人数。

输出格式:

输出至少有多少人 m 项都会。

输入样例:

50 4

30 35 42 46

输出样例:

3


求n个人中m个技能都会的同学有几个?


emmmmmmm

可以先计算出,每种技能会的人数。

那么 所有人m个技能都会的人数 - 已知技能会的人数 = 会m种及以下的人数

再 总人数 - 会m种及以下的人数 = 全会的人数

但是可能会出现 会m种及以下的人数 大于 总人数, 如果出现了这种情况的话,那么全会的人数为0

比如:

50 4

1 1 1 1


java 复制代码
import java.io.*;
import java.util.*;

public class Main
{

	public static void main(String[] args)
	{
		int n = sc.nextInt();
		int m = sc.nextInt();
		int ans = 0; // 技能会的人数
		for (int i = 1; i <= m; i++)
		{
			int x = sc.nextInt();
			ans += x;
		}

		int res = n * m - ans; // m种都会 - 技能会的人数 = 只会m种及以下的人数
		out.println(Math.max(0, n - res));

		out.flush();
		out.close();
	}

	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);

}


如果有说错的 或者 不懂的 尽管提 嘻嘻

一起进步!!!


闪现

相关推荐
裕晟资质规划6 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
念念清晰6 小时前
000-OpenJDK17 源码构建:MacOS环境(M芯片)
java·后端
ShineWinsu6 小时前
对于JavaScript:JavaScript基础语法的解析
开发语言·前端·javascript·面试·web·基础语法·循环
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 百度人脸识别入门案例
java·百度·交友
普通人67 小时前
php+html+canvas实现树状打开的结构
开发语言·javascript·html5·1024程序员节
wuminyu7 小时前
JMM学习总结:深入理解happens-before关系
java·linux·c语言·jvm·c++
电商API_180079052477 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api
开开心心就好8 小时前
多份文档怎么批量打印?支持多种格式
java·服务器·开发语言·pdf·ocr·散列表·启发式算法
Want5958 小时前
Python炫酷烟花①
开发语言·python
Pniubi9 小时前
模拟一个充值送token怎么保证幂等?一致性?原子性?
java