TOJ4168: Same Digits

Posted BobHuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TOJ4168: Same Digits相关的知识,希望对你有一定的参考价值。

4168: Same Digits 技术分享图片

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 115            Accepted:62

Description

 

Your program will be given an integer X. Find the smallest number larger than X consisting of the same digits as X.

 

Input

 

The first line of input contains the integer X (1 ≤ X ≤ 999 999).
The first digit in X will not be a zero.

 

Output

 

Output the result on a single line. If there is no such number, output 0.

 

Sample Input

 156

Sample Output

 165

这个前缀为0没有什么卵用

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
    char s[10];
    gets(s);
    int n=strlen(s),i,j;
    for(i=n-1; i>0; i--)
        if (s[i]>s[i-1])break;
    if(!i)puts("0");
    else
    {
        int x=s[i-1],f=i;
        for (j=i+1; j<n; j++)
            if(s[j]>x&&s[j]<s[f])f=j;
        swap(s[f], s[i-1]);
        sort(s+i,s+n);
        puts(s);
    }
    return 0;
}

 



以上是关于TOJ4168: Same Digits的主要内容,如果未能解决你的问题,请参考以下文章

TJUOJ4168解题报告

爱普生4168打印机可以远程控制打印吗

Luogu4168 [Violet]蒲公英

luogu4168蒲公英(区间众数)

Luogu P4168 [Violet]蒲公英

Vscode 片段变量