runround.cpp

来自「dd牛的usaco源代码!对学习算法」· C++ 代码 · 共 51 行

CPP
51
字号
/*
ID: dd.ener1
PROG: runround
LANG: C++
*/
#include <cstdio>
#include <cstring>
using namespace std;

long M;
void input(){
	freopen("runround.in","r",stdin);
	scanf("%d",&M);
}
bool is_runround(long n){
	static char str[12];
	static bool exist[10]; 
	memset(exist,0,sizeof(exist));
	static bool used[12];
	memset(used,0,sizeof(used));
	sprintf(str,"%d",n);
	long len=strlen(str);
	for(long i=0;;){
		long now=str[i]-'0';
		if(!now)return false;
		if(exist[now])return false;
		exist[now]=true; 
		long next=(i+now)%len;
		used[next]=true;
		if(!next)break;
		i=next;
	}
	for(long i=0;i<len;++i)
		if(!used[i])return false;
	return true;
}
void output(long res){
	freopen("runround.out","w",stdout);
	printf("%d\n",res);
}
int main(){
	input();
	for(;;){
		++M;
		if(is_runround(M)){
			output(M);
			return 0;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?