E. Divisibility by 25 【枚举】

E. Divisibility by 25

这题没什么好解释的

#include
#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="<=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="<

你可能感兴趣的:(E. Divisibility by 25 【枚举】)