124


SUBMITTED BY: Guest

DATE: Dec. 25, 2013, 3:06 p.m.

FORMAT: Text only

SIZE: 1.9 kB

HITS: 2107

  1. #include <algorithm>
  2. #include <cmath>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <iomanip>
  6. #include <iostream>
  7. #include <limits.h>
  8. #include <map>
  9. #include <queue>
  10. #include <set>
  11. #include <stack>
  12. #include <string>
  13. #include <vector>
  14. using namespace std;
  15. typedef pair<int,int> ii;
  16. typedef vector<int> vi;
  17. typedef vector<ii> vii;
  18. typedef set<int> si;
  19. typedef set<ii> sii;
  20. #define MP make_pair
  21. #define PB push_back
  22. #define FOR(i,a,b) for ( int i = int(a); i <= int(b); ++i )
  23. #define FORD(i,a,b) for ( int i = int(a); i >= int(b); --i )
  24. #define TR(c,it) for( typeof(c.begin()) it = c.begin(); it != c.end(); ++it )
  25. #define TRR(c,it) for( typeof(c.rbegin()) it = c.rbegin(); it != c.rend(); ++it )
  26. const int INF = 1<<29;
  27. typedef long long int lli;
  28. bool graph[26][26];
  29. bool used [26];
  30. char str [27];
  31. void print( int len )
  32. {
  33. FOR( i, 0, len-2 )
  34. FOR( j, i+1, len-1 )
  35. if ( graph[ str[i]-'a' ][ str[j]-'a' ] )
  36. return;
  37. printf("%s\n", str);
  38. }
  39. void solve( )
  40. {
  41. int tmp = 0;
  42. FOR( i, 0, 25 )
  43. if ( used[i] )
  44. str[ tmp++ ] = i+'a';
  45. str[tmp] = '\0';
  46. do {
  47. print( tmp );
  48. } while ( next_permutation( str, str+tmp ) );
  49. }
  50. int main( )
  51. {
  52. char v1, v2, c;
  53. for ( int caseNr = 1; ; ++caseNr )
  54. {
  55. c = '#';
  56. memset( used, 0, sizeof( used ) );
  57. memset( graph, 0, sizeof( graph ) );
  58. while ( scanf("%c%c", &v1, &c) == 2 )
  59. {
  60. used[ v1-'a' ] = 1;
  61. if ( c == '\n' )
  62. break;
  63. }
  64. if ( c == '#' )
  65. break;
  66. if ( caseNr != 1 )
  67. printf("\n");
  68. while ( scanf("%c %c%c", &v1, &v2, &c) >= 2 )
  69. {
  70. graph[ v2-'a' ][ v1-'a' ] = 1;
  71. if ( c == '\n' )
  72. break;
  73. }
  74. solve( );
  75. }
  76. return 0;
  77. }

comments powered by Disqus