week2実験B

質問の意味:
実験に使用したプログラム設計の考え方やリアルタイム職務評価システムを、私たちは、その機能がそれを達成する方法であることを、パフォーマンスのランキング機能へのタイムリーなアクセスを持っていますか?
私たちは憎しみの上に非常に懸命に働いたと他のさまざまなエラーを返すようにどちらか、ACへの提出、評価システムや復帰後のプログラムに見て耐えることができない、間違った方法では、それは常にあなたが表示され、あなたが幸運を覚えて与えるどんなにピットは、前にここにいますが、あなたは最終的には莫大ACを経験したとき、それはあなたのペンや台帳を計算します、すべての日付で、この問題が数回あることを示していました。
年の長いコースで、あなたはより多くいえ渡すが、時間によってあなたは(タイトル、開始日からこの時間まで)各設問の合計時間を費やしている質問の数が記録されます、あなたは今まで現場で苦労しています。特に、あなたが合格トピックのために、あなたは、この質問はあなたが多くの人を招く可能性がある、質問の数に作るように、エラーカウント時に一定の単位時間ペナルティたびに提出されますに関するましたが、質問の同じ数を作る人に、あなたはランキングに不利でペナルティので、高すぎるかもしれません。
例えば、8つの質問(A、B、C、Dの合計として試験を 、E、F、G、H)、 各作ら質問が負の数に対応した問題数のマーカーの数は、学生のタイトルを示している持っています間違った番号を提出したが、今まではAC、AC正の数が正の数が正の数bを持つ一対のブラケット、に追いつくためにならば、時間の消費量は、それが学生の交流、この質問を意味していることを示していませんでした、それは同時に提出し、bは間違った時間を持っていた時間を消費します。例としては、以下の入力および出力サンプルセクションを見ることができます。
入力:
複数の列を含む入力データは、最初の行は、共通のタイトル番号N(1≤n≤12)及びペナルティユニットM(10≤m≤20)、学生情報の記述後のデータの各行は、最初であります現状続く学生のユーザー名は(これ以上10文字の文字列より)、質問マークの数に記載のフォーマットを説明し、すべてのN個の質問に得点上記の表を参照します。
出力:
ランキングリアルタイムのこれらの学生スコアリング出力の状態によります。リアルタイムランキングは明らかにACプレス行の数は、より前者よりも、その後、どのくらいの時間点の列、小さなフロントが起こった前にどのくらいの問題の両方が等しい場合、プレス辞書編集行の名前、最小の最初のものです。各行ごとの学生、出力名(10の文字幅)、質問の数を作るために(ワイド2つの文字を、右詰め)および時点(4つの文字幅の広い、右寄せ)。名前、タイトルおよび時間点の数互いの間にスペースがあります。データが必要な出力形式の出力を確保することができます。
INPUTサンプル:
8 20である
(図3)Gu​​GuDong 96 -3 40 1 0 0 0 -8。
HRZ 107 -3 67 0 0 0 0 82
TT 120 30 10 21 47 -3 0(2)-2(3)(1)
OMRailgun -666 -10 086 -99 -8 0 0 -9999996
YJQ 37 -2(2)0 113 13 -1(2)79(1)-1
ZJM 0 0 57(5)0 0 99(3)-7 0であります
出力サンプル:
。TT 5 348
。YJQ 4 342
GuGuDong 3 197。
HRZ 3 256。
ZJM 2 316
OMRailgun 0
アイデア:
構造体の定義は、名前、番号を定義し、時間内に解答への質問に答えます。交流エラーの前に時間があるので、それは、どのくらいの時間が判定された場合、各誤差ペナルティは、従って、何らペナルティは存在しなかった場合に決意。とき(ペナルティ、すなわちこの時点でプラス時間が表示されますがない場合、すなわち遭遇していない。あなたはケースが発生した場合はどこペナルティは、(前に2つの部分を追加した後、直接の後の括弧内にブラケットを追加する前に失敗の数、プラスペナルティの数時間として時間ペナルティ。この解釈は場合は、この問題があったこと交流を決定した方法に基づいており、正解数は、統計情報があれば、観察することによって判断することができるときデータので、ソート後のソート出力を結果を通過した後、交流することで、この決意、話題の交流数、時間の大きさかどうか、すなわちなし交流、ゼロまたは負である。
コード:
の#include
の#include
の#include
の#include
#含む
、使用名前空間STD
ストリングthescore [20である];
構造体スコア{
 文字列名;
 INT NUM = 0;
 = 0 INT時間;
 BOOL演算子は<(TEスコアのconst&)のconst
 {
  TE(!NUM = te.num)IF NUMを返します> .nu​​m;  
  IF時間リターン<te.time(= te.time時間!);
  戻り名<te.name;
 
 }
}学生[10000];
ボイドthetime(文字列&T、INT&時間、INT&M)
{
 int型= 0;
 // INT B = t.find( '(');
 // IF(B == - 1)
 IF(t.find( '(')== - 1)
 {
  = 0;
  (INT I = 0 ; I <t.length(); I ++)
  {
   (T [i]の場合> T [i]が<= '9')&& '0' =
   {
    A = A
10+(T [I] - '0')。
   }
   
  }
  時間=時間+;
 }
 他
 {
  //ため(INT I = 0、I <B; I ++)
  のための(INT I = 0; iが<t.find( '('); I ++)
  {
   IF(T [I]> = '0' && T [i]は<= '9')
   {
    A = A 10+(T [I] - '0');
   }
  }
  時間=時間+;
  = 0;
  //用(int型I = B + 1; I <t.length() - 1; I ++)
  (INT I = t.find( '(')は、I <t.length(); I ++)
  {
   IF(T [i]が> = '0' && T [i]は<= '9')
   {
    A = A
10+(T [I] - '0');
   }
  }
  時間=時間+ * M;
 }
 
}
int型のmain()
{
 int型N、M;
 scanf関数( "%D%D"、&N、&M);
 / / GETCHAR();
 int型のカウント= 0;
 文字列T、
 INT iは= 0;
 ながら(CIN >> T)
 {
  thescore [I ++] = T;
  IF(I == N + 1)
  {
   // thenum(thescore、iは、M、カウント);
   学生[カウント] .nameの= thescore [0];
 文字列T;
 INT CNUM = 0;
 のための(INT J = 1、J <I、J ++)
 {
  T = thescore [J];
  IF(T [0] =! ' - ' && T [0]!= '0')
  //もし(!(thescore [0] = ' - ')&&(のstrcmp(thescore、「0」)= 0))
  {
   CNUM ++。
   thetime(T、学生[カウント] .time、M)。
  }
 }
 学生[カウント] .nu​​m = CNUM。
   ++数えます。
   I = 0;
  }
 }
 //ソート(カウント)。
 ソート(学生、学生+カウント数)。
 以下のために(INT I 0 =; I <数; I ++)
 {
  のprintf( "% - 10S%2D%4D \ n"は、学生[I] .name.c_str()、学生[I] .nu​​m、学生[I] 。時間);
 }
 0を返します。
}

公開された19元の記事 ウォンの賞賛0 ビュー219

おすすめ

転載: blog.csdn.net/weixin_45117273/article/details/104738632