这题没什么好解释的
#include<bits/stdc++.h>
#define PI acos(-1.0)
#define pb push_back
#define F first
#define S second
#define debug puts
#define setp cout << fixed << setprecision(15)
#define fst ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
typedef long long ll;
const int N=5e4+5;
const int MOD=998244373;
int cnt[100];
int main(void){
ll n;
scanf("%lld",&n);
string s=to_string(n);
for(auto ch:s) cnt[ch-'0']++;
int sz=(int)s.size();
if(sz<=2){
if(n==25|| n==50||n==75) printf("0\n");
else if(n==52 || n==57) printf("1\n");
else printf("-1\n");
return 0;
}
int ans=1e9+9;
if(cnt[0]>=2){
string t=s;
int te=0;
int index;
for(int i=sz-1;i>=0;i--){
if(t[i]=='0'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-1;i++) swap(t[i],t[i-1]),te++/*,cout <<"i="<<i<<" te="<<te<<endl*/;
for(int i=sz-2;i>=0;i--){
if(t[i]=='0'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-2;i++) swap(t[i],t[i-1]),te++;
ans=min(ans,te);
}
if(cnt[2]>=1&&cnt[5]>=1){
string t=s;
int te=0;
int index;
for(int i=sz-1;i>=0;i--){
if(t[i]=='5'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-1;i++) swap(t[i],t[i-1]),te++/*,cout <<"i="<<i<<" te="<<te<<endl*/;
for(int i=sz-2;i>=0;i--){
if(t[i]=='2'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-2;i++) swap(t[i],t[i-1]),te++;
int cnt=0;
for(int i=0;i<sz;i++){
if(t[i]=='0') cnt++;
else break;
}
if(sz-cnt>=3)
ans=min(ans,te+cnt);
}
if(cnt[0]>=1&&cnt[5]>=1){
string t=s;
int te=0;
int index;
for(int i=sz-1;i>=0;i--){
if(t[i]=='0'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-1;i++) swap(t[i],t[i-1]),te++/*,cout <<"i="<<i<<" te="<<te<<endl*/;
for(int i=sz-2;i>=0;i--){
if(t[i]=='5'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-2;i++) swap(t[i],t[i-1]),te++;
int cnt=0;
for(int i=0;i<sz;i++){
if(t[i]=='0') cnt++;
else break;
}
// cout << t<< endl;
// printf("~~~%d\n",te+cnt);
if(sz-cnt>=3)
ans=min(ans,te+cnt);
}
if(cnt[5]>=1&&cnt[7]>=1){
string t=s;
int te=0;
int index;
for(int i=sz-1;i>=0;i--){
if(t[i]=='5'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-1;i++) swap(t[i],t[i-1]),te++/*,cout <<"i="<<i<<" te="<<te<<endl*/;
for(int i=sz-2;i>=0;i--){
if(t[i]=='7'){
index=i;
break;
}
}
for(int i=index+1;i<=sz-2;i++) swap(t[i],t[i-1]),te++;
int cnt=0;
for(int i=0;i<sz;i++){
if(t[i]=='0') cnt++;
else break;
}
if(sz-cnt>=3)
ans=min(ans,te+cnt);
}
if(ans==1e9+9) printf("-1\n");
else printf("%d\n",ans);
return 0;
}