】奖项颁发【
廢話不說,直接看題——
?題目描述
最近,全國第88屆信息學(xué)奧林匹克競賽順利結(jié)束。本次競賽共有n名參賽者,每個人都獲得了一定的分?jǐn)?shù)。作為本次比賽的負(fù)責(zé)人,你將根據(jù)以下標(biāo)準(zhǔn)頒布獎狀:·至少有一個人會獲得獎狀·得分為0的人不能獲得獎狀·當(dāng)有一個人獲得獎狀后,分?jǐn)?shù)不低于他的人也必須獲得獎狀接下來,請你確定,有多少種頒發(fā)獎狀的方案,并輸出可能的方案數(shù)。輸入格式?
第一行一個數(shù)字n(1≤n≤100),表示參加比賽的人數(shù)。接下來一行包含n個整數(shù)a1,a2,……,an(0≤ai≤600),表示第i個人獲得的分?jǐn)?shù)輸入保證至少有一個人得分不為0。樣例1號
樣例輸入:4 1 3 3 2樣例輸出:3~~對不起沒有2號
讀完題我不禁感嘆一句:得個獎這么簡單!!!
獎,能有我的香
1.至少有 1 個人有獎狀,
2.得分為 0 的人沒有獎狀,
3.有人獲得獎狀后,分?jǐn)?shù)不低于他的人也得有獎狀。
這不就是算有多少不同的分?jǐn)?shù)(除 0 分外)嗎?
? ? ? na~的影子不就浮現(xiàn)了嗎,
給代碼:
#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; }?
?
?點個贊再走吧!
?
?
總結(jié)