To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L in lowercase), or 0 (zero) from O (o in uppercase). One solution is to replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. Now it is your job to write a program to check the accounts generated by the judge, and to help the juge modify the confusing passwords.

Input Specification:

Each input file contains one test case. Each case contains a positive integer N (<= 1000), followed by N lines of accounts. Each account consists of a user name and a password, both are strings of no more than 10 characters with no space.

Output Specification:

For each test case, first print the number M of accounts that have been modified, then print in the following M lines the modified accounts info, that is, the user names and the corresponding modified passwords. The accounts must be printed in the same order as they are read in. If no account is modified, print in one line "There are N accounts and no account is modified" where N is the total number of accounts. However, if N is one, you must print "There is 1 account and no account is modified" instead.

Sample Input 1:

3
Team000002 Rlsp0dfa
Team000003 perfectpwd
Team000001 R1spOdfa

Sample Output 1:
2
Team000002 RLsp%dfa
Team000001 R@spodfa

Sample Input 2:
1
team110 abcdefg332

Sample Output 2:
There is 1 account and no account is modified

Sample Input 3:
2
team110 abcdefg222
team220 abcdefg333

Sample Output 3:
There are 2 accounts and no account is modified
#include<iostream>
#include<vector>
#include<string>
using namespace std;
struct user{
string name,pwd;
};
int main(){
for(int n;cin>>n;){
vector<user>vec(n);
vector<user>res;
for(int i = 0;i < n;i++){
cin>>vec[i].name>>vec[i].pwd;
}
for(int i = 0;i < n;i++){
int flag = 0;
for(int j =0; j < vec[i].pwd.length();j++){
switch ((vec[i].pwd)[j])
{
case '1':
(vec[i].pwd)[j] = '@';
flag = 1;
break;
case '0':
(vec[i].pwd)[j] = '%';
flag = 1;
break;
case 'l':
(vec[i].pwd)[j] = 'L';
flag = 1;
break;
case 'O':
(vec[i].pwd)[j] = 'o';
flag = 1;
break;
default:
break;
}
}
if(flag){
res.push_back(vec[i]);
}
}
if(res.size()){
cout<<res.size()<<endl;
for(int i = 0; i < res.size();i++){
cout<<res[i].name<<" "<<res[i].pwd<<endl;
}
}else{
if(n == 1){
cout<<"There is 1 account and no account is modified"<<endl;
}else{
cout<<"There are "<<n<<" accounts and no account is modified"<<endl;
}
}
}
return 0;
}

• 本文已收录于以下专栏：

#include #include #include int main(){ int i,j,n; char name[1002][12],pwd[1002][12]; ...
• Sup_Heaven
• 2014年02月09日 12:07
• 1213

## PAT乙级—1035. 插入与归并(25)-native

• wanmeiwushang
• 2016年06月08日 22:47
• 999

#include #include #include using namespace std; int main() { vector > vec; pair tmp; int num...
• github_24924857
• 2015年07月09日 16:53
• 235

• jjike
• 2013年03月06日 16:12
• 683

## PAT 1035 1035. Password (20)

To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...
• persuing_truth
• 2017年03月19日 20:30
• 274

## mysql error 1035

4 最终解决方案：       1.手动停止mysql服务。       2.修改D:\MySQL\MySQL Server 5.0\ 目录下的my.ini文件,在[mysqld]下添加       ...
• wanglikui521
• 2015年03月07日 15:28
• 643

## PAT a1035题解

#include #include struct Account{ char name[15], password[15]; bool isChange = false; }s[1005]...
• a18779148177
• 2017年07月18日 21:13
• 111

## 杭电oj----1035 Robot Motion

• yiyuqingning
• 2016年08月03日 18:57
• 733

## PAT_乙级 1035 插入与归并

1.题目描述： 根据维基百科的定义： 插入排序是迭代算法，逐一获得输入数据，逐步产生有序的输出序列。每步迭代中，算法从输入序列中取出一元素，将之插入有序序列中正确的位置。如此迭代直到全部元素有序。...
• prim_learn
• 2016年12月09日 11:58
• 143

## PAT(Basic Level)_1035_插入与归并

#include #includeusing namespace std;bool ifequal(int a[],int b[],int n){ for(int i=0;i
• HOH_mizukun
• 2017年07月25日 10:37
• 110

举报原因： 您举报文章：1035 Password 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)