洛谷1042卓球解題報告

2226 ワード

洛谷1042卓球
本題の住所: http://www.luogu.org/problem/show?pid=1042
テーマの背景
国際卓球連盟のサララ議長は就任以来、卓球運動の世界的な普及を推進するために一連の改革を推進することを志している.このうち11点制改革は大きな論争を引き起こし、一部の選手は新しいルールに適応できないため引退するしかない.華華はその一人で、引退後卓球研究に進み、11点制と21点制が選手に与える影響を理解しようとした.彼の研究を展開する前に、彼はまず長年の試合の統計データを分析する必要があるので、あなたの助けが必要です.
タイトルの説明
華華華は以下のように分析し、まず試合の各ボールの勝負を1枚の表に並べ、それからそれぞれ11点制と21点制の下で、双方の試合結果(記録の末尾まで)を計算した.例えば今、このような記録があります(その中でWは華華が1点を獲得し、Lは華の相手が1点を獲得したことを示します):WWWWWWWWWWWWWWWWWWWWLWは11点制の下で、この時の試合の結果は華の第1局が11対0で勝って、第2局が11対0で勝って、第3局を行って、現在のスコアは1対1です.21点制の下で、この時試合の結果は華華第1局が21対0で勝って、第2局を行って、スコアは2対1です.1セットの試合が始まったばかりなら、この時のスコアは0対0です.点差が2以上になるまで、やっと1セットが終わった.あなたのプログラムは一連の試合情報の入力(WL形式)に対して、正しい結果を出力することです.
にゅうしゅつりょくけいしき
入力形式:
各入力ファイルには、大文字のW、L、Eからなる複数の行文字列(行ごとに20文字以上)が含まれています.ここで、Eは試合情報が終了したことを示し、プログラムはEの後のすべての内容を無視すべきである.
出力フォーマット:
出力は2つの部分で構成され、各部分にはいくつかの行があり、各行は1セットの試合のスコア(試合情報入力順)に対応している.ここで、第1の部分は11分制の結果であり、第2の部分は21分制の結果であり、2つの部分の間は1つの空行で区切られている.
入出力サンプル
サンプル#1を入力:
WWWWWWWWWWWWWWWWWWWW
WWLWE

出力サンプル#1:
11:0
11:0
1:1

21:0
2:1

問題解
シミュレーション
読みながら計算すると、双方のスコア差が2以上で、一方のスコアがスコア上限に達しているか、文字がEに等しい場合は、スコアを配列で格納し、配列を大きくします.
さらに、以下の詳細に注意してください.
1.入力にスペースがあります.2.1試合終了後自動0:0に出力します.3.スコア差が2より小さい場合に追加する必要があります.2に等しい場合は必要ありません.4.1つ読み込んだ後、すぐに1セットが終わったかどうかを判断したほうがいい.そうしないと面倒になる.
コードを添付します.
コード#コード#
program sheep;  
  • var  

  • x,y:array[0..10000]of longint;  
  • a,b,t,i:longint;  

  • c:char;  
  • begin  

  • t:=1;  
  • repeat  

  • read(c);  
  • if c='E'then break;  

  • if c='W'then begin inc(a);inc(x[t]);end;  
  • if c='L'then begin inc(b);inc(y[t]);end;  

  • if((a>10)or(b>10))and(abs(a-b)>1)then begin  
  • writeln(a,':',b);  

  • a:=0;  
  • b:=0;  

  • end;  
  • if((x[t]>20)or(y[t]>20))and(abs(x[t]-y[t])>1)then inc(t);  

  • until false;  
  • writeln(a,':',b);  

  • writeln;  
  • for i:=1 to t do writeln(x[i],':',y[i]);  

  • end.  
    (本文は筆者オリジナルで、許可なく転載してはならない)
    転載先:https://www.cnblogs.com/yzm10/p/4750567.html