10641 | 2024-04-07 16:28:26 | 111 | Kicsi billentyűzet | cpp17 | Időlimit túllépés 30/100 | 1.577s | 5772 KiB |
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin>>T;
while(T--){
string S;
cin>>S;
int N=S.size();
S='0'+S;
for(char&c:S){
c-='0';
}
int tot=0;
for(int i=1;i<=N;i++){
tot+=abs(S[i]-S[i-1]);
}
auto calc=[&](int p)->int{
int cnt[10][10]{};
for(int i=p+1;i<=N;i++){
int s=min(S[i],S[i-1]);
int e=max(S[i],S[i-1]);
cnt[s][e]++;
}
int b=0;
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
int a=0;
for(int k=0;k<i;k++){
a+=(cnt[k][j]-cnt[k][i])*(j-i);
}
for(int k=j+1;k<10;k++){
a+=(cnt[i][k]-cnt[j][k])*(j-i);
}
for(int k=i+1;k<j;k++){
a+=(cnt[i][k]-cnt[k][j])*((k-i)-(j-k));
}
if(i==S[p]){
a+=abs(i-S[p-1]);
a-=abs(j-S[p-1]);
}
if(j==S[p]){
a+=abs(j-S[p-1]);
a-=abs(i-S[p-1]);
}
b=max(b,a);
}
}
return tot-b;
};
int ans=N*10;
for(int i=1;i<=N;i++){
ans=min(ans,calc(i));
}
cout<<ans<<'\n';
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1824 KiB | ||||
2 | Elfogadva | 3ms | 2056 KiB | ||||
subtask2 | 0/30 | ||||||
3 | Elfogadva | 3ms | 2276 KiB | ||||
4 | Elfogadva | 68ms | 2768 KiB | ||||
5 | Elfogadva | 114ms | 2852 KiB | ||||
6 | Elfogadva | 158ms | 2968 KiB | ||||
7 | Időlimit túllépés | 1.557s | 2332 KiB | ||||
8 | Időlimit túllépés | 1.577s | 2968 KiB | ||||
9 | Időlimit túllépés | 1.577s | 2972 KiB | ||||
subtask3 | 30/30 | ||||||
10 | Elfogadva | 3ms | 3800 KiB | ||||
11 | Elfogadva | 3ms | 4028 KiB | ||||
12 | Elfogadva | 3ms | 4188 KiB | ||||
13 | Elfogadva | 4ms | 4212 KiB | ||||
14 | Elfogadva | 4ms | 4316 KiB | ||||
subtask4 | 0/40 | ||||||
15 | Elfogadva | 28ms | 4424 KiB | ||||
16 | Elfogadva | 68ms | 4876 KiB | ||||
17 | Elfogadva | 264ms | 5208 KiB | ||||
18 | Elfogadva | 709ms | 5436 KiB | ||||
19 | Időlimit túllépés | 1.565s | 4692 KiB | ||||
20 | Időlimit túllépés | 1.565s | 4832 KiB | ||||
21 | Időlimit túllépés | 1.562s | 5240 KiB | ||||
22 | Időlimit túllépés | 1.574s | 5648 KiB | ||||
23 | Időlimit túllépés | 1.56s | 5772 KiB |