Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

果然需要暴力破解呢

Posted by YushengJiang at 2012-08-25 14:22:24 on Problem 1012
#include<iostream>
//#include<fstream>
using namespace std;
//ofstream fout ("supervisor.log");
int joseph[14];
/*
void process(){
	bool killed[28];
	for (int i=1;i<14;++i){
		fout<<"i "<<i<<endl;
		int loop=1;
		while (1){
			fout<<"loop "<<loop<<endl;
			memset(killed,false,sizeof(killed));
			int pointer=-1;
			bool flag=true;
			for (int j=0;j<i;++j){
				for (int k=0;k<loop;++k){
					++pointer;
					if (pointer==2*i) pointer=0;
					while (killed[pointer]){
						++pointer;
						if (pointer==2*i) pointer=0;
					}
				}
				fout<<j+1<<" "<<pointer<<" Killed"<<endl;
				if (pointer<i){
					flag=false;
					break;
				}
				killed[pointer]=true;
			}
			if (flag) break;
			fout<<"WA"<<endl;
			++loop;
		}
		joseph[i]=loop;
		fout<<i<<" "<<loop<<endl;
	}
}
*/
void process(){
	for (int i=1;i<14;++i){
		int loop=0,length,point;
		bool flag=false,infer;
		while (!flag){
			++loop;
			length=i*2;
			infer=true;
			point=-1;
//			fout<<i<<" "<<loop<<endl;
			for (int j=0;j<i;++j){
				point=(point+loop)%length;
				if (point<i){
					infer=false;
					break;
				}
//				fout<<point<<endl;
				--point;
				--length;
			}
			if (infer) flag=true;
		}
		joseph[i]=loop;
	}
}
int main (void){
	process();
	int k;
	cin>>k;
	while (k!=0){
		cout<<joseph[k]<<endl;
		cin>>k;
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator