PAT 1035 Password

#include<iostream>

#include<cstdio>

#include<string>

#include<cstring>

#include<queue>

#include<vector>

#include<cmath>

#include<iomanip>

#include<algorithm>

using namespace std;



struct Account

{

	char chUser[15];

	char chPass[15];

	bool isModified;

};



bool modify(char *pass)

{

	bool ret = false;

	int len = strlen(pass);

	for(int i=0; i<len; i++)

	{

		if(pass[i] == '1')

		{

			pass[i] = '@';

			ret = true;

		}

		else if(pass[i] == '0')

		{

			pass[i] = '%';

			ret = true;

		}

		else if(pass[i] == 'l')

		{

			pass[i] = 'L';

			ret = true;

		}

		else if(pass[i] == 'O')

		{

			pass[i] = 'o';

			ret = true;

		}

	}

	return ret;

}



int main()

{

	int N,i;

	vector<Account> v;

	Account ac;

	int iCount = 0;

	cin>>N;

	for(i=0; i<N; i++)

	{

		cin>>ac.chUser;

		cin>>ac.chPass;

		ac.isModified = modify(ac.chPass);

		if(ac.isModified)

			iCount++;

		v.push_back(ac);

	}

	if(iCount == 0)

	{

		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;

	}

	else

	{

		cout<<iCount<<endl;

		for(i=0; i<v.size(); i++)

			if(v[i].isModified)

				cout<<v[i].chUser<<" "<<v[i].chPass<<endl;

	}

	return 0;

}

  

你可能感兴趣的:(password)