2 条题解
-
0
开心的人数
大致题意:一堆学生挨个进入教室,如果当前教室里面的人当中,分数比他小的人数>=分数比他大的人数,那么她就是开心的。
(感觉不符合三好学生、四好少年的基本自我要求)思路:采用计数排序,从他的分数开始在数组里扫两遍(从前到他的分数,从末尾到他的分数),比他小的总和人数如果大于比他大的总和人数,那么sum增加,最后输出sum。
上代码
#include<bits/stdc++.h> using namespace std; int js[110],n,sum,maxx; bool pd(int x) { int sum1=0,sum2=0; for(int i=1;i<x;i++) sum1+=js[i]; //扫一遍比他小的 for(int i=101;i>x;i--) sum2+=js[i]; //扫一遍比他大的 if(sum1>=sum2) return 1; else return 0; } int main() { cin>>n; for(int i=1;i<=n;i++) { int ls; cin>>ls; //读入当前这个人 js[ls]++; //计数 if(pd(ls)==1) //判断是否开心 sum++; } cout<<sum; return 0; }
信息
- ID
- 1125
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 76
- 已通过
- 21
- 上传者