/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 344.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 2ms 532.0 KiB
#4 Accepted 2ms 564.0 KiB
#5 Accepted 2ms 576.0 KiB
#6 Accepted 1ms 532.0 KiB
#7 Accepted 2ms 324.0 KiB
#8 Accepted 2ms 400.0 KiB
#9 Accepted 10ms 1.031 MiB
#10 Accepted 10ms 920.0 KiB
#11 Accepted 7ms 1.0 MiB
#12 Accepted 6ms 588.0 KiB

Code

// Author : Kamonasish Roy (Bullet)
// Time : 2025-04-04 18:01:48

#include<bits/stdc++.h>
using namespace std;
const long long M=5e5,MOD=1e9+7;
typedef long long ll;
int cost(int x,int y){
	int dif=abs(x-y);
	return min(dif,26-dif);
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    cin>>t;
    while(t--){
    	
    	string s;
    	string target="EIJOORSSU";
    	vector<int>aa(10,0);
    	for(int i=1;i<=9;i++)aa[i]=(int)(target[i-1]-'A');
    	cin>>s;
    	assert(s.size()>=9 && s.size()<=200000);
    	string p="";
    	vector<int>fre(26,0);
    	for(char ch:s)fre[ch-'A']++;
    	for(char ch='A';ch<='Z';ch++){
    		int mx=9;
    		while(mx>0 && fre[ch-'A'])fre[ch-'A']--,mx--,p+=ch;
    	}
    	s=p;
    	vector<int>bb(s.size()+1,0);
    	for(int i=1;i<=(int)s.size();i++)bb[i]=(int)(s[i-1]-'A');
    	int ans=INT_MAX;
    	for(int cnt=0;cnt<14;cnt++){
    	vector<int>a=aa;
    	vector<int>b=bb;
    	for(int i=1;i<=target.size();i++)a[i]=(aa[i]-cnt+26)%26;
    	for(int i=1;i<=s.size();i++)b[i]=(bb[i]-cnt+26)%26;
    	sort(a.begin()+1,a.end());
    	sort(b.begin()+1,b.end());
         vector<vector<int>>dp((int)s.size()+1,vector<int>(10,M));
         dp[0][0]=0;
         for(int i=1;i<=(int)s.size();i++){
         	dp[i][0]=0;
         	for(int j=1;j<=min(i,(int)target.size());j++){
         		dp[i][j]=min(dp[i][j],dp[i-1][j]);
         		dp[i][j]=min(dp[i][j],dp[i-1][j-1]+cost(b[i],a[j]));
         		
         	}
         }
        
        ans=min(ans,dp[s.size()][target.size()]);
         }
         cout<<ans<<"\n";
       
    	
    	
    	}
    	
    	   
    return 0;
 
}

Information

Submit By
Type
Submission
Problem
P1188 The Mysty Lock
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-05 22:22:48
Judged At
2025-04-06 08:20:57
Judged By
Score
100
Total Time
10ms
Peak Memory
1.031 MiB