TLE求调

B3843 [GESP202306 三级] 密码合规

fangjunhao @ 2024-08-23 11:05:29

#include<bits/stdc++.h>
using namespace std;
string s;
int t=0,cnt[4],size;
int pd(int a,int b,int c,int d,bool f,int z) {
    if(a+b+c>=2&&d) {
        if(f&&size>=6&&size<=12) {
            for(int i=t; i<z; i++) {
                cout<<s[i];
            }
            cout<<"\n";
        }
    }
    t=z+1;
}
bool f=1;
int main() {
    getline(cin,s);
    s+=',';
    for(int i=0; i<s.size(); i++) {
        if(s[i]==',') {
            pd(cnt[0],cnt[1],cnt[2],cnt[3],f,i);
            memset(cnt,0,sizeof(cnt));
            size=0;
            f=1;
        } else {
            if(s[i]<='Z'&&s[i]>='A') {
                cnt[0]=1;size++;
            } else {
                if(s[i]<='z'&&s[i]>='a') {
                    cnt[1]=1;size++;
                } else {
                    if(s[i]<='9'&&s[i]>='0') {
                        cnt[2]=1;size++;
                    } else {
                        if(s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$') {
                            cnt[3]=1;size++;
                        } else {
                            f=0;
                        }
                    }
                }
            }
        }
    }
    return 0;
}

|