usaco_runround.cpp

来自「usaco自己做的1到5章的代码」· C++ 代码 · 共 55 行

CPP
55
字号
/*
ID:wangyuc2
PROG:runround
LANG:C++
*/
#include <iostream>
#include <fstream>
#include <memory.h>
#include <cmath>
#include <algorithm>
//#include <queue>
using namespace std;
ifstream fin ("runround.in");
ofstream fout ("runround.out");  
bool finded(unsigned long n)
{
     int a[10];
     bool b[10];
     int i=0,j,t;
     memset(b,false,sizeof(b));
     while(n>10)
     {
         t=n%10;
         if(!b[t] && t!=0) {b[t]=true;
           a[i]=t;
           n/=10;
           i++;
         }
         else return false;
     }
     if(!b[n]) a[i]=n;
     else return false; 
     t=i+1;
     i=t;
     j=t-1;
     while(i>0)
     {
         j=(t-((a[j]+t)-j)%t)<t?(t-((a[j]+t)-j)%t):0;
         i--;
		 if(j==t-1) break;
     }
     if(j==t-1 && i==0) return true;
     else return false;
}
int main()
{
    unsigned long n,i,k=0;
    fin>>n;
    i=n+1;
    while(!finded(i) && i<~k) i++;
    fout<<i<<endl;
   // system("PAUSE");
    return 0;
}

⌨️ 快捷键说明

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