提交时间:2023-05-04 23:24:51
运行 ID: 16550
//选森林之王 约瑟夫环来进行选择 //森林召开全体大会,选一个动物作为森林之王,输入动物的数量, // 候选者,有三种的机会比其他动物多两次。狮子,老虎和恐龙 #include<iostream> #include<string> using namespace std; string str[10]={}; int a[11],n,m,s=0,cnt=10; //输入 n=3, 1 1 1 3 3 3 1 1 1 1 int main() { cin>>n>>m; for(int i=0;i<n;i++){ cin>>str[i]; if(str[i]=="tiger"||str[i]=="lion"||str[i]=="dinosaur"){ a[i]=3; } else a[i]=1; } cnt=n; int i=0; while(cnt>1){ if(a[i]>0) s++; if(s==m) { a[i]--; if(a[i]==0) cnt--; s=0; } i++; i%=10; } for(int i=0;i<n;i++){ if(a[i]) cout<<"森林之王是:"<<str[i]; } return 0; }