HDU-2925Musical Chairs

来源:互联网 发布:ls产电plc编程软件 编辑:程序博客网 时间:2024/05/18 10:47

常规解法,结果悲剧超时了

#include<iostream>#include<list>int n,d;std::list<int> chairs;typedef std::list<int>::iterator litr;litr itr;int pos1,pos2;int main(){while (std::cin>>n>>d&&n&&d){for(int i=0;i!=n;i++){chairs.push_back(i+1);}itr=chairs.begin();while (true){if(chairs.size()==1){break;}pos2=(pos1+d-1)%chairs.size();std::advance(itr,pos2-pos1);pos1=pos2;itr=chairs.erase(itr);}std::cout<<n<<" "<<d<<" "<<*(chairs.begin())<<std::endl;pos1=pos2=0;chairs.clear();}}