L 1-056数字を当てる(C++)
1099 ワード
原題住所:PTA階段練習
タイトル:
一群の人が座って、一人一人が100以内の数を当てて、誰の数字がみんなの平均数の半分に一番近いかを当てて勝つ.本題はあなたにその中の勝者を見つけるように要求します.
入力形式:
入力は、1行目に正の整数N(≦10 4)を与える.その後、N行は、各行に1人のプレイヤーの名前(8文字以下の文字列)と、その推測の正の整数(≦100)を与える.
出力フォーマット:
1行で順番に出力:平均数の半分(整数部分のみ出力)、勝者の名前をスペースで区切ります.タイトルは勝者が唯一であることを保証します.
サンプルを入力:
出力サンプル:
コード:
タイトル:
一群の人が座って、一人一人が100以内の数を当てて、誰の数字がみんなの平均数の半分に一番近いかを当てて勝つ.本題はあなたにその中の勝者を見つけるように要求します.
入力形式:
入力は、1行目に正の整数N(≦10 4)を与える.その後、N行は、各行に1人のプレイヤーの名前(8文字以下の文字列)と、その推測の正の整数(≦100)を与える.
出力フォーマット:
1行で順番に出力:平均数の半分(整数部分のみ出力)、勝者の名前をスペースで区切ります.タイトルは勝者が唯一であることを保証します.
サンプルを入力:
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
出力サンプル:
22 Amy
コード:
#include
#include
#include
using namespace std;
struct st
{
string name;
int g;
}s[10005];
bool cmp(st a,st b)
{
return a.g>n)
{
int sum=0;
for(int i=0;i>s[i].name>>s[i].g;
sum=sum+s[i].g;
}
int ave=sum/n/2;
sort(s,s+n,cmp);
for(int i=0;i=ave){
int q1=s[i].g-ave;
if(i>0){
int q2=ave-s[i-1].g;
if(q1