以下列為例
4 5 4 1 5 3 6 5 1 6 4 1 3 2
第三行的順序是說排序第4個與第1個先比。
也就是說戰力3的人先跟戰力4的人比。
烙單的會排在所有贏的人的後面(成功組與失敗組中間)
還要注意測資會超過int範圍(題目有講)
main() {
int n,m,k;
while(cin>>n>>m &&n &&m){
int s[1005],t[100000];
int lose[1005] = {0};
vector<int> v,v1,v2;
for(int i=1;i<=n;i++){
cin>>s[i];
}
for(int i=1;i<=n;i++){
cin>>t[i];
}
for(int i=0;i<n;i++){
cin>>k;
v.push_back(k);
}//輸入測資
while(v.size()>1){
for(int i=0;i<v.size()-1;i+=2){
int fi=v[i],se = v[i+1];
int a=s[fi],b=t[fi];
int c=s[se],d=t[se];
if(a*b>=c*d){
戰力計算
lose[se]++;
if(lose[se]<m)v2.push_back(se);
v1.push_back(fi);
}else if(a*b<c*d){
戰力計算
lose[fi]++;
if(lose[fi]<m)v2.push_back(fi);
v1.push_back(se);
}
}
if((int)v.size()%2 == 1)v1.push_back(v.back());
v=v1;
v.insert(v.end(),v2.begin(),v2.end());
v1.clear();
v2.clear();
}
cout<<v[0]<<endl;
}
}