Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. int N, C, numbersNum, answer;
  7. char numbers[6];
  8. bool visited[1000000][11];
  9.  
  10. void init() {
  11. scanf("%s %d", numbers, &C);
  12. numbersNum = strlen(numbers);
  13.  
  14. memset(visited, false, sizeof(visited));
  15. answer = 0;
  16. }
  17.  
  18. void dfs(int cnt) {
  19. if (cnt == C) {
  20. int bonus;
  21. bonus = atoi(numbers);
  22. if (answer < bonus)
  23. answer = bonus;
  24. return;
  25. }
  26.  
  27. for (int i = 0; i < numbersNum; i++) {
  28. for (int j = i; j < numbersNum; j++) {
  29. if (i == j)
  30. continue;
  31. swap(numbers[i], numbers[j]);
  32. if (visited[atoi(numbers)][cnt + 1] == false) {
  33. visited[atoi(numbers)][cnt + 1] = true;
  34. dfs(cnt + 1);
  35. }
  36. swap(numbers[i], numbers[j]);
  37. }
  38. }
  39. }
  40.  
  41. int solve() {
  42. dfs(0);
  43. return answer;
  44. }
  45.  
  46. int main() {
  47. int T, answer;
  48. scanf("%d", &T);
  49. for (int t = 1; t <= T; t++) {
  50. init();
  51. answer = solve();
  52. printf("#%d %d\n", t, answer);
  53. }
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement