L 1-056数字を当てる(C++)

1099 ワード

原題住所:PTA階段練習
タイトル:
一群の人が座って、一人一人が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