2.2.3
2016-03-25 16:03
357 查看
/* ID:18861501 LANG:C++ TASK:runround */ /*------------------Header Files------------------*/ #include <iostream> #include <cstring> #include <string> #include <cstdio> #include <algorithm> #include <cstdlib> #include <ctype.h> #include <cmath> #include <stack> #include <queue> #include <map> #include <vector> #include <limits.h> using namespace std; /*------------------Definitions-------------------*/ #define LL long long #define PI acos(-1.0) #define INF 0x3F3F3F3F /*---------------------Work-----------------------*/ int num_temp[15]; bool vis[15]; bool advance(int cnt) { int flag=num_temp[0]%(cnt+1); if(flag==0) return false; vis[flag]=true,vis[0]=true; while(1) { flag=(num_temp[flag]+flag)%(cnt+1); if(flag==0) { for(int i=0;i<=cnt;i++) if(!vis[i]) return false; return true; } if(vis[flag]) return false; else vis[flag]=true; } } bool try_num(int num) { int n=num,cnt=0; while(n) { num_temp[cnt++]=n%10; n=n/10; } cnt--; for(int i=0;i<=cnt;i++) { if(num_temp[i]==0) return false; for(int j=0;j<=cnt;j++) if(i!=j&&num_temp[i]==num_temp[j]) return false; } for(int i=0,j=cnt;i<=j;i++,j--) swap(num_temp[i],num_temp[j]); memset(vis,0,sizeof(vis)); if(advance(cnt)) return true; else return false; } void work() { unsigned int M; scanf("%ld",&M); for(unsigned int i=M+1;i<(1<<24);i++) if(try_num(i)) { printf("%d\n",i); return; } } /*------------------Main Function------------------*/ int main() { //freopen("test.txt","r",stdin); freopen("runround.out","w",stdout); freopen("runround.in","r",stdin); work(); return 0; }
相关文章推荐
- 2.2.4(wonderful)
- HttpClient4.5简单使用
- min-height在安卓下不起作用
- 工作流设计
- 进程间通信--信号(进程间通信唯一的异步方式)
- 2.2.1(wonderful)
- 2.2.2(wonderful)
- 解决Android-PullToRefresh模块引用问题
- xshell 快捷键设置,使用大全
- 微服务(三)
- ASP.NET MVC 几种 Filter 的执行过程源码解析
- Android Binder设计与实现 - 设计篇
- k-Mediods算法Matlab实现
- 设置cell选中颜色以及表格默认选中某行
- php重视问题2
- 进程调度的概念
- 2.1.4(extra)
- 2.1.5
- java中的自增过程不是原子性操作
- 教养就是好好说话