0051 - Differential II
#include <algorithm> #include <functional> #include <iostream> using namespace std; #define DIGIT 10000000 int Alignment(int data[]) { int number=0, j=DIGIT; for (int i=0; i<8; ++i, j/=10) number+=data[i]*j; return number; } void Slove(int n) { int number, data[8], max_number, min_number; for (int i=0; i<n; ++i) { cin >> number; for (int j=0; j<8; ++j) { data[j]=number%10; number/=10; } sort( data,data+8,greater<int>() ); max_number=Alignment(data); sort(data,data+8); min_number=Alignment(data); cout << max_number-min_number << endl; } } int main(void) { int n; cin >> n; Slove(n); return 0; }
並び替えて桁合わせするだけ。