24h購物| | PChome| 登入
2009-10-02 22:39:43| 人氣523| 回應0 | 上一篇 | 下一篇

板橋高中98-2模擬測驗 B-成績單

推薦 0 收藏 0 轉貼0 訂閱站台

作法: 內建快排

由於遞回快排超過10萬次(約)就會爆掉,所以用內建吧

/*********************************************************/

#include<stdlib.h>
#include<stdio.h>
int s1[1000000],s2[1000000];
int compare(const void *a,const void *b)
{
   int *aa=(int*)a,*bb=(int*)b;
   if(*aa>*bb) return -1;
   if(*aa==*bb) return 0;
   if(*aa<*bb) return 1;  
}
int input()  
{  
  char cha;  
  int x=0;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
  x=cha-48;  
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
      x=x*10+cha-48;  
    }  
    return x;  
}
main()
{
  int N,top1=0,top2=0,k,a,b;
  scanf("%d",&N);
  while(N--)
     {
        a=input();b=input();
        if(a==1)
           s1[top1++]=b;
        else
           s2[top2++]=b;
     }
  qsort(s1,top1,sizeof(int),compare);
  qsort(s2,top2,sizeof(int),compare);
  scanf("%d",&k);
  if(s1[k-1]>s2[k-1])
     printf("1 %d\n",s1[k-1]-s2[k-1]);
  else
     printf("2 %d\n",s2[k-1]-s1[k-1]);
   return 0;
}

台長: 來源不明
人氣(523) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 資訊競賽 |
此分類下一篇:USACO C-分堆大考驗
此分類上一篇:板橋高中98-2模擬測驗 A-排列組合

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文