Advertisement
yicongli

CF988E

Jan 21st, 2021 (edited)
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define gc c=getchar()
  6. #define r(x) read(x)
  7. #define ll long long
  8.  
  9. template<typename T>
  10. inline void read(T&x){
  11.     x=0;T k=1;char gc;
  12.     while(!isdigit(c)){if(c=='-')k=-1;gc;}
  13.     while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
  14. }
  15.  
  16. const int INF=(1u<<31)-1;
  17.  
  18. int n;
  19. char s[20];
  20. char t[2];
  21. int cnt0,cnt2,cnt7,cnt5;
  22.  
  23. inline int find(int a,int b){
  24.     int posa=0;
  25.     int posb=0;
  26.     for(int i=n;i;--i){
  27.         if(s[i]==b){
  28.             posb=i;
  29.             break;
  30.         }
  31.     }
  32.     for(int i=n;i;--i){
  33.         if(s[i]==a && i!=posb){
  34.             posa=i;
  35.             break;
  36.         }
  37.     }
  38.     if(!posa || !posb)return INF;
  39.     int ret=0;
  40.     for(int i=1;i<=n;++i){
  41.         if(i!=posa && i!=posb){
  42.             if(s[i])break;
  43.             else ++ret;
  44.         }
  45.     }
  46.     return ret+n-1-posa+n-posb+(posb<posa);
  47. }
  48.  
  49. int main(){
  50.     // freopen(".in","r",stdin);
  51.     // freopen(".out","w",stdout);
  52.     scanf("%s",s+1);
  53.     n=strlen(s+1);
  54.     for(int i=1;i<=n;++i)s[i]-='0';
  55.     int ans=INF;
  56.     // printf("%d\n",find(0,0));
  57.     // printf("%d\n",find(2,5));
  58.     // printf("%d\n",find(5,0));
  59.     // printf("%d\n",find(7,5));
  60.     ans=min(ans,find(0,0));
  61.     ans=min(ans,find(2,5));
  62.     ans=min(ans,find(5,0));
  63.     ans=min(ans,find(7,5));
  64.     if(ans==INF)ans=-1;
  65.     printf("%d\n",ans);
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement