Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: theem1502

Problemset: สุ่มสลับ

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-04 22:13:33

#include<bits/stdc++.h>
using namespace std;
long long fac(long long n){
	long long ans = 1;
	for(long long i=2;i<=n;i++){
		ans = ans*i;
	}
	return ans;
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	
	long long n,sum = 1,k;
	cin>>n;
	string a;
	cin>>a;
	vector<char> b;
	for(long long i=0;i<n;i++){
		char c = a[i];
		b.push_back(c);
	}
	sort(b.begin(), b.end());
	for(long long i=0;i<n;i++){
		for(long long j=0;j<b.size();j++){
			if(a[i] == b[j]){
				k = j;
				break;
			}
		}
		sum += k*fac(n-i-1);
		b.erase(find(b.begin(), b.end(), b[k]));
	}
	cout<<sum;
}