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; }