Untitled
unknown
plain_text
2 years ago
1.5 kB
8
Indexable
#include <iostream> using namespace std; int arr[11][10005]; int getNumber(char str[], int size) { int res = 0; for(int i = 0; i < size; i++) { int number = str[i] - '0'; res = res * 10 + number; } return res; } void changeNumber(int number, char str[], int size) { for(int i = 0; i < size; i++) { char c = (number % 10) + '0'; number /= 10; str[size - i - 1] = c; } } int main() { freopen("input.txt", "r", stdin); int T; cin >>T; for(int tc = 1; tc <= T; tc++) { char str[100]; cin >>str; int N; cin >>N; int size = 0; while(str[size] != '\0') size++; int defaultValue = getNumber(str, size); arr[0][0] = defaultValue; int count = 0, count2 = 1, max = 0; for(int l = 0; l < N; l++) { count = count2; count2 = 0; for(int k = 0; k < count; k++) { changeNumber(arr[l][k], str, size); for(int i = 0; i < size - 1; i++) { for(int j = i+1; j < size; j++) { char tmp = str[j]; str[j] = str[i]; str[i] = tmp; int value = getNumber(str, size); bool existed = false; for(int m = 0; m < count2; m++) { if(arr[l+1][m] == value) { existed = true; break; } } if(!existed) arr[l+1][count2++] = value; if(l == N-1 && max < value) max = value; char tmp2 = str[j]; str[j] = str[i]; str[i] = tmp2; } } } } cout <<"Case #" <<tc <<"\n" <<max <<endl; } return 0; }
Editor is loading...