| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
开始以为用链表,后来觉得栈方便,在后来觉得还是数组够用了,最后发现什么都不用了……243ms还有,这题数据重复的陷阱好阴险#include<iostream>
using namespace std;
int main()
{
int k,m,p,remain;
int mem[14],flag[14]={0}; //记录结果
while(cin>>k)
{
if(k==0) break;
if(flag[k]==1) cout<<mem[k]<<endl;
if(flag[k]==0)
{
remain=2*k;
for(m=k+1;;m++)
{
p=0; remain=2*k;
while(1)
{
if((p+m-1)%remain<k) break; //p为要删除的元素序号
else
{
p=(p+m-1)%remain;
remain--;
}
if(remain==k) break;
}
if(remain==k) break;
}
mem[k]=m; flag[k]=1;
cout<<m<<endl;
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator