256572026-02-23 23:35:14999Kicsi billentyűzetcpp17Elfogadva 100/100120ms1524 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
    int t;cin>>t;
    while(t--){
        string s;cin>>s;
        int n=s.size();
        int ans=INT_MAX;
        vector<int> v(n);
        v[0]=s[0]-'0';
        for(int i = 1;i<n;i++){
            v[i]=v[i-1]+abs((s[i]-'0')-(s[i-1]-'0'));
        }
        ans=min(v[n-1],ans);
        for(int j = 0;j<10;j++){
            for(int k = j+1;k<10;k++){
                vector<int> V(n);
                string ts=s;
                for(int i = 0;i<n;i++){
                    if(s[i]-'0'==j)s[i]=to_string(k)[0];
                    else if(s[i]-'0'==k)s[i]=to_string(j)[0];
                }
                for(int i = n-2;i>=0;i--){
                    V[i]=V[i+1]+abs((s[i]-'0')-(s[i+1]-'0'));
                }
                //for(int i : V)cout<<i<<' ';
                //cout<<endl;
                ans=min(ans,V[0]+s[0]-'0');
                for(int i = 0;i<n-1;i++){
                    ans=min(ans,V[i+1]+v[i]+abs((ts[i]-'0')-(s[i+1]-'0')));
                }
                s=ts;
            }
        }cout<<ans<<endl;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask230/30
3Elfogadva2ms316 KiB
4Elfogadva76ms516 KiB
5Elfogadva39ms316 KiB
6Elfogadva41ms388 KiB
7Elfogadva43ms564 KiB
8Elfogadva43ms1520 KiB
9Elfogadva43ms1512 KiB
subtask330/30
10Elfogadva2ms316 KiB
11Elfogadva2ms316 KiB
12Elfogadva2ms316 KiB
13Elfogadva2ms608 KiB
14Elfogadva1ms416 KiB
subtask440/40
15Elfogadva57ms316 KiB
16Elfogadva120ms316 KiB
17Elfogadva45ms316 KiB
18Elfogadva45ms496 KiB
19Elfogadva45ms760 KiB
20Elfogadva45ms1012 KiB
21Elfogadva46ms1452 KiB
22Elfogadva46ms1524 KiB
23Elfogadva46ms1516 KiB