PKU 3664 Election Time

http://poj.org/problem?id=3664
最近解ける問題が見つからなくなってきて、こんな簡単な問題を見つけて数稼ぎが出来ると喜んだのも束の間、TLEは厳しいです。cinはダメっぽいです。

n匹の牛がいて、2段階の選挙を経て、一匹の代表を決める。
このとき、1段階目でk匹目まで減る。
牛iが1段階目で獲得する表はai,その牛が仮に2段階目に進んだ時に獲得する表はbi
ここで、ai、biに同数票はない。獲得した票が多いものから順に次の段階に進む。
代表になるのはどの牛かを求める問題。

TLEを2回ほど食らいました。

int va[50000],vb[50000];
int tem[50000];

main(){
  int n,k;
  cin>>n>>k;
  rep(i,n){
    scanf("%d%d",va+i,vb+i);
    tem[i]=va[i];
  }
  sort(tem,tem+n,greater<int>());
  int t=tem[k-1];
  int ans,bnum=0;
  rep(i,n){
    if(va[i]<t)continue;
    if(bnum<vb[i]){
      bnum=vb[i];
      ans=i;
    }
  }
  cout<<ans+1<<endl;
}