废话不说,直接看题——
题目描述
最近,全国第88届信息学奥林匹克竞赛顺利结束。本次竞赛共有n名参赛者,每个人都获得了一定的分数。
作为本次比赛的负责人,你将根据以下标准颁布奖状:
·至少有一个人会获得奖状
·得分为0的人不能获得奖状
·当有一个人获得奖状后,分数不低于他的人也必须获得奖状
接下来,请你确定,有多少种颁发奖状的方案,并输出可能的方案数。
输入格式
第一行一个数字n(1≤n≤100),表示参加比赛的人数。
接下来一行包含n个整数a1,a2,……,an(0≤ai≤600),表示第i个人获得的分数
输入保证至少有一个人得分不为0。
样例1号
样例输入:
4
1 3 3 2
样例输出:
3
~~对不起没有2号
读完题我不禁感叹一句:得个奖这么简单!!!
奖,能有我的香
1.至少有 1 个人有奖状,
2.得分为 0 的人没有奖状,
3.有人获得奖状后,分数不低于他的人也得有奖状。
这不就是算有多少不同的分数(除 0 分外)吗?
na~的影子不就浮现了吗,
给代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, a[100];
int s = 0;
bool v[601] = {};
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++){
if (a[i] != 0 && v[a[i]] == false){
v[a[i]] = true;
s++;
}
}
cout << s;
return 0-0;
}
点个赞再走吧!