https://www.luogu.org/problem/P1051
書式#include <ビット/ STDC ++ H.> 使用して 名前空間はstd; 構造体のノード{ 文字列 ; XM // 名前の int型の QM、BJ; // 成績平均点、クラス会のパフォーマンスの最後 のchar ; BGB、XB // それがあるかどうか、学生の指導者かどうか、学生西部は int型 LWを; // 発表された論文の数 int型 ANSを; // 個々のボーナスの数は獲得 のint NUMを; // カウント数、質問の数が同じである2人を得たボーナスを尋ねたので、出力は最初に来る、つまり、比較的前方参照(小さい) } [ 101 ]; int型 N-、TOT = 0 ; // TOT記録貨幣の総数 BOOL CMP(ノードX、Yノード){ IF(Yの==のx.ans .ans)戻り x.num <y.num; // フェローは、多数の降順 他 返す x.ans> y.ans; // 大小規模から同じ序数によって賞 } INT (メイン){ scanf関数(" %のD "、&N) 以下のために(int型 i = 1 ; iが++; iが<= N ){ CIN >> [I] .xm >> [I] .qm >> [I] .bj >> [I] .bgb >> [I] .xb >> [I] .lw。 もし([I] .qm> 80 && [I] .lw> = 1 ) [I] .ans + = 8000 。 もし([I] .qm> 85 && [I] .bj> 80 ) [I] .ans + = 4000 。 もし([I] .qm> 90 ) [I] .ans + = 2000 。 もし([I] .xb == ' Y ' && [I] .qm> 85 ) [I] .ans + = 1000年。 もし([I] .bj> 80 && [I] .bgb == ' Y ' ) [I] .ans + = 850 。 [I] .num = I。 TOT + = A [I] .ans; // TOTがフェローの総数です } ソート(A + 1、A + N + 1 、CMP)。 COUT << [ 1 ] .xm << ENDL << [ 1 ] .ans << ENDL << TOT。 リターン 0 ; }
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INT のmain(){ int型 N、SCORE1、score2、和= 0、最大= 0、合計= 0 、X、I。 char型、Bと、 文字列の名前、MAXN。 cinを >> N; 用(i = 1 ; iが<= N; iは++ ){ CIN >> SCORE1名>> >> A >> B >> score2 X; IF(SCORE1> 80 && X> 0)// か判断アカデミーフェロー SUM + = 8000 ; IF(SCORE1> 85 && score2> 80)// か判断五〇から四フェロー SUM + = 4000 ; のiF(SCORE1> 90)// 未処理結果が得られたか否かを判断する賞 SUM + = 2000 ; のiF(SCORE1> 85 && B == ' Y ')// 西カンファレンス奨学金かどうかを判断します + = SUM 1000年; IF(score2> 80 && A == ' Y ')// クラスの賞を得たか否かを判定する SUM + = 850 。 合計 + = SUM; //は、奨学金蓄積 IF(SUM> max)を// ほとんどの牛の学生を識別 MAXN =名前、最大= SUM; // SUMの有用性の SUM = 0 ; } coutの << MAXN <<てendl <<最大<<てendl << 合計。 リターン 0 ; }