白駿アルゴリズム11557号:Yangjojang of The Year


リンク


https://www.acmicpc.net/problem/11557

質問する


入学時に誰よりも遊んでいるあなたは、自然と一年生や大学を歴任しています.
他の学校との協力を計画しているあなたは、近くの学校でどの学校が一番お酒を飲んでいるのか気になります.
1つの学校に行くたびに1年のお酒の消費量は、お酒の消費が最も多い学校の名前を印刷します.

入力


入力された最初の行は、試験例の数値Tを与える.
各入力の第1行は、学校のデジタル整数N(1≦N≦100)を与える.
次に、N行において、学校名S(1≦|S|≦20、Sはスペースを持たない大文字文字列)と、その学校が過去1年間に消費した酒量L(0<=L<=10000)とが空白に分割され、整数形式で与えられる.
同じテストケースで、同じ飲酒量の学校はないと仮定します.

しゅつりょく


どのテストボックスにも、最も酒に強い学校の名前が印刷されます.

入力と出力の例



プールコード

// 11557번 : Yangjojang of The Year

#include <stdio.h>
#include <stdlib.h>

typedef struct{
  char name[21];
  int price;
} University;

int compare(const void *a,const void *b){
  University A = *(University*)a;
  University B = *(University*)b;
  if(A.price > B.price){
    return 1;
  }
  else{
    return -1;
  }
  return 0;
}

int main(){
  int test;
  scanf("%d",&test);
  int n;
  for(int i = 0; i < test; i++){
    scanf("%d",&n);
    University *list;
    list = (University *)malloc(sizeof(University) * n);
    for(int i = 0; i < n; i++){
      scanf("%s %d",list[i].name,&list[i].price);
    }
    qsort(list,n,sizeof(University),compare);
    printf("%s\n",list[n - 1].name);
    free(list);
  }
  return 0;
}