POJ 1146 ID Codes (UVA146)

4865 단어 code
//       
//
// No Successor
// stl 、


 
/*

#include <iostream>

#include <string>

#include<sstream>

#include <cmath>

#include <map>

#include <stdio.h>

#include <string.h>

#include <algorithm>

using namespace std;

char s[100];

int n;

int main()

{



   while(scanf("%s",s),strcmp(s,"#"))

   {

       n=strlen(s);

       if(next_permutation(s,s+n))

         printf("%s
",s); else printf("No Successor
"); } return 0; }
*/ #include <iostream> #include <string> #include<sstream> #include <cmath> #include <map> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; char s[100]; int n; void change(int l,int r) { while(l<r) { swap(s[l],s[r]); l++; r--; } } bool permutation() { int i=n-1; while(i>0&&s[i-1]>=s[i]) i--; if(!i) return false; int k=i,j=n-1; for(;j>i;j--) if(s[j]>s[i-1]){ k=j; break; } swap(s[i-1],s[k]); change(i,n-1); return true; } int main() { while(scanf("%s",s),strcmp(s,"#")) { n=strlen(s); if(permutation()) printf("%s
",s); else printf("No Successor
"); } return 0; }

좋은 웹페이지 즐겨찾기