1035 Password

原创 2015年11月19日 20:14:30

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;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

浙大PAT 1035题 1035. Password

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

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

根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操...
  • wanmeiwushang
  • wanmeiwushang
  • 2016年06月08日 22:47
  • 999

PAT 1035 Password

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

pat 1035 Password

估计是pat里最水的水题了,只要将对应的字母更换即可。 AC代码: //1035 15:50 - 16:16 #include #include const int MAXN=1005; ...
  • jjike
  • 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
  • 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
  • wanglikui521
  • 2015年03月07日 15:28
  • 643

PAT a1035题解

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

杭电oj----1035 Robot Motion

题目大意:第一行输入三个数i,j,n,分别代表输入有i行j列,机器人站在n列,依照N(向上走一个单位)E(向右走一个单位)S(向下走一个单位)W(向左走一个单位)。 输出:输出有两种可能:1.走出这...
  • yiyuqingning
  • yiyuqingning
  • 2016年08月03日 18:57
  • 733

PAT_乙级 1035 插入与归并

1.题目描述: 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。...
  • prim_learn
  • 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
  • HOH_mizukun
  • 2017年07月25日 10:37
  • 110
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1035 Password
举报原因:
原因补充:

(最多只允许输入30个字)