Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define gc c=getchar()
- #define r(x) read(x)
- #define ll long long
- template<typename T>
- inline void read(T&x){
- x=0;T k=1;char gc;
- while(!isdigit(c)){if(c=='-')k=-1;gc;}
- while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
- }
- const int INF=(1u<<31)-1;
- int n;
- char s[20];
- char t[2];
- int cnt0,cnt2,cnt7,cnt5;
- inline int find(int a,int b){
- int posa=0;
- int posb=0;
- for(int i=n;i;--i){
- if(s[i]==b){
- posb=i;
- break;
- }
- }
- for(int i=n;i;--i){
- if(s[i]==a && i!=posb){
- posa=i;
- break;
- }
- }
- if(!posa || !posb)return INF;
- int ret=0;
- for(int i=1;i<=n;++i){
- if(i!=posa && i!=posb){
- if(s[i])break;
- else ++ret;
- }
- }
- return ret+n-1-posa+n-posb+(posb<posa);
- }
- int main(){
- // freopen(".in","r",stdin);
- // freopen(".out","w",stdout);
- scanf("%s",s+1);
- n=strlen(s+1);
- for(int i=1;i<=n;++i)s[i]-='0';
- int ans=INF;
- // printf("%d\n",find(0,0));
- // printf("%d\n",find(2,5));
- // printf("%d\n",find(5,0));
- // printf("%d\n",find(7,5));
- ans=min(ans,find(0,0));
- ans=min(ans,find(2,5));
- ans=min(ans,find(5,0));
- ans=min(ans,find(7,5));
- if(ans==INF)ans=-1;
- printf("%d\n",ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement