CF140D题解

CF140D 题解

题意

有一个跨年比赛从晚上六点到次日早上六点,总共有 n 道题,第 i 题要花 ai 分钟,每题的罚时为提交时间与 0 点的时间差,在比赛开始时,需要花 10 分钟看题的难度,求能做的最答题数和。

思路

简单的贪心题。

要想做的题数最多而且罚时越少,那就先做花时间少的题,能在 0 点前做完的题那就一起在 0 点的时候交,这样在 0 点前做的题全不用罚时。

总结

  1. 需要花 10 分钟看题的难度。
  2. 每题的罚时为提交时间与 0 点的时间差。
  3. 总比赛的时间为 12=720 分。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[105],ans,num,cnt=10;
//ans 为可以答题数。 
//num 为罚时。 
//cnt 记录目前用了多少时间。 
int main(){
	scanf("%d",&n);
	for(int i=1; i<=n; i++) scanf("%d",&a[i]);
	sort(a+1,a+1+n);//将做题时间从小到大排序。 
	for(int i=1; i<=n; i++){
		cnt+=a[i];
		if(cnt>720) break;//做的时间大于720分。(比赛已经结束) 
		//总比赛的时间就是12小时,也就是720分钟。 
		ans=i;//更新做了几题。 
		if(cnt>360) num+=cnt-360;//如果超过0点罚时 
	}
	printf("%d %d",ans,num);
	return 0;
}
posted @   naroto2022  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
花开如火,也如寂寞。