Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: TonnamSora
Problemset: สุ่มสลับ
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-07 15:45:33
#include <iostream>
using namespace std;
int main(){
int N;
cin >> N;
string s;
cin >> s;
int fac[13] = {1, 1, 2, 6, 24, 120, 720, 5040, 5040*8, 5040*8*9, 5040*8*9*10, 5040*8*9*10*11, 5040*72*10*11*12};
int sum = 0;
char m[N];
int value;
for(int i = 0; i < N; i++){
m[i] = 'A' + i;
//cout << m[i];
}
int idx = N;
for(int i = 0; i < N; i++){
value = 0;
for(int j = 0; j < s[i] - 'A'; j++){
if(m[j] != '_'){
value++;
}
}
//cout << value << " ";
sum += (value) * fac[idx - 1];
//cout << value << " " << fac[idx - 1] << " " << sum << "\n";
for(int j = 0; j < N; j++){
if(m[j] == s[i]){
m[j] = '_';
}
}
idx--;
}
cout << sum + 1;
}