】奖项颁发【
廢話不說,直接看題——
?題目描述
最近,全國第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; }?
?
?點個贊再走吧!
?
?
總結