Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
27633 | 唐心 | 【数组】猴子选大王(monkey) | C++ | Accepted | 2 MS | 724 KB | 1380 | 2022-06-07 11:31:00 |
#include <iostream> using namespace std; //mark标记当前下标编号的猴子有没有出圈 bool mark[3001] = {} ; int main() { int n , m ; cin >> n; int k = n-2 ; //k为所要出圈猴子数量 int i = 0 ; //i为遍历mark数组 int flag = 0,temp = 0 ; //所报数字 while(k) { temp = 0; for(i = 0; i < n; i++) { if(!mark[i]) { //如果当前猴子未出圈 temp++ ; //报数++ if(temp % 3 == 0) //如果报中m了,出圈 { //cout<<i+1<<endl; mark[i] = !mark[i] ; k-- ; } } } if(k == 0) { flag = 1; break; } temp = 0; for(i = n-1; i >= 0; i--) { if(!mark[i]) //如果当前猴子未出圈 { temp++ ; //报数++ if(temp % 3 == 0) //如果报中m了,出圈 { //cout<<i+1<<endl; mark[i] = !mark[i] ; k-- ; } } } } // for(i = 0;i < n;i++) // { // cout <<mark[i]<<" "; // } if(flag == 1) { i = n-1 ; while(mark[i]) i--; cout << i+1 << endl ; } else { i = 0 ; while(mark[i++]) ; cout << i << endl ; } return 0; }