Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- int N, C, numbersNum, answer;
- char numbers[6];
- bool visited[1000000][11];
- void init() {
- scanf("%s %d", numbers, &C);
- numbersNum = strlen(numbers);
- memset(visited, false, sizeof(visited));
- answer = 0;
- }
- void dfs(int cnt) {
- if (cnt == C) {
- int bonus;
- bonus = atoi(numbers);
- if (answer < bonus)
- answer = bonus;
- return;
- }
- for (int i = 0; i < numbersNum; i++) {
- for (int j = i; j < numbersNum; j++) {
- if (i == j)
- continue;
- swap(numbers[i], numbers[j]);
- if (visited[atoi(numbers)][cnt + 1] == false) {
- visited[atoi(numbers)][cnt + 1] = true;
- dfs(cnt + 1);
- }
- swap(numbers[i], numbers[j]);
- }
- }
- }
- int solve() {
- dfs(0);
- return answer;
- }
- int main() {
- int T, answer;
- scanf("%d", &T);
- for (int t = 1; t <= T; t++) {
- init();
- answer = solve();
- printf("#%d %d\n", t, answer);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement