#YHJH20250601. 保护隐私(password)
保护隐私(password)
题目描述
Rubyonly 需要保护他的隐私,所以他设置了很多密码,不同密码的强度也不同。
Rubyonly 认为,一个只包含大写字母、小写字母、数字、特殊字符且长度不大于 16 的密码的强度级数等于这个密码满足的下面的条件的数量:
· 包含特殊字符。 · 包含大于等于 2 个不相同的大写字母。 · 包含大于等于 2 个不相同的小写字母。 · 包含大于等于 3 个不相同的数字。 · 长度不小于 8。
其中,特殊字符为 ASCII 值不小于 33 且不大于 126,同时不为大写字母、小写 字母、数字的字符。
你可以使用提示里的程序生成一份 ASCII 码对照表。
现在给定你一个密码 � 和它的长度 �,你需要输出它的强度级数。
格式要求
输入格式
从文件 password.in 中读入数据。 输入一共 2 行。 第 1 行一个整数 n。 第 2 行一个长度为 n 且只包含大写字母、小写字母、数字、特殊字符的字符串 s。
输出格式
输出到文件 password.out 中。 输出一个整数,表示密码 s 的强度级数。
样例
6
B45E6A
2
7
ssskc04
1
11
cnVzMmtmeGQ
3
9
mx@CFZ123
5
限制要求
1s, 256MiB for each test case.
提示
使用下面这份程序可以生成一份 ASCII 码对照表。
请注意,这份程序只会生成 ASCII 码对照表中 ASCII 值不小于 33 且不大于 126 的部分。
#include <bits/stdc++.h>
using namespace std;
int main(){
int cnt=0;
for(int i=33;i<=126;i++){
printf("%3d: %c",i,i);
if(++cnt!=5) printf(" ");
else printf("\n"),cnt=0;
}
printf("\n");
return 0;
}