題解 AcWing 1519 密碼

2021-10-25 15:43:06 字數 2031 閱讀 7103

原題傳送:acwing 1519. 密碼

為了準備pat,系統不得不為使用者生成隨機密碼。

但是有時一些數字和字母之間總是難以區分,比如1(數字一)和l( l

ll 的小寫),0(數字零)和o( o

oo 的大寫)。

一種解決辦法是將1(數字一)替換為@,將0(數字零)替換為%,將l( l

ll 的小寫)替換為l,將o( o

oo 的大寫)替換為o

現在,你的任務就是幫助系統檢查這些使用者的密碼,並對難以區分的部分加以修改。

輸入格式

第一行包含乙個整數 n

nn,表示使用者數量。

接下來 n

nn 行,每行包含乙個使用者名稱和乙個密碼,都是長度不超過 10

1010

且不含空格的字串。

輸出格式

首先輸出乙個整數 m

mm,表示已修改的使用者密碼數量。

接下來 m

mm 行,每行輸出乙個使用者名稱和其修改後的密碼。

使用者的輸出順序和讀入順序必須相同。

如果沒有使用者的密碼被修改,則輸出there are n accounts and no account is modified,其中n

nn是使用者總數。

如果 n=1

n=1n=

1,則應該輸出there is 1 account and no account is modified

資料範圍

1 ≤n

≤1000

1 \le n \le 1000

1≤n≤10

00輸入樣例1:

3

team000002 rlsp0dfa

team000003 perfectpwd

team000001 r1spodfa

輸出樣例1:
2

team000002 rlsp%dfa

team000001 r@spodfa

輸入樣例2:
1

team110 abcdefg332

輸出樣例2:
there is 1 account and no account is modified
輸入樣例3:
2

team110 abcdefg222

team220 abcdefg333

輸出樣例3:
there are 2 accounts and no account is modified
遍歷密碼替換成對應的字元,用結構體儲存變更密碼的使用者資訊。

#include

using

namespace std;

const

int n =

1010

;int n, cnt =0;

string name, pwd;

struct user

u[n]

;int

main()

if(tmp != pwd)}if

(cnt ==

0&& n ==1)

cout <<

"there is 1 account and no account is modified"

;else

if(cnt ==

0&& n >1)

cout <<

"there are "

<< n <<

" accounts and no account is modified"

;else

return0;

}

ACwing 天才ACM 題解

題面入口 題目大意,將乙個數列劃分成最少的幾段,滿足每段內的資料集合中,取m對最大最小數出來,將其取出來的每對數求差值並平方,並求這m對的差值平方的求和值s,這個值不能超過指定的t。題目分析 從劃分後的集合中選出m對數,讓每對數的差的平方的和最大值為乙個貪心模型,我們只需要將集合中的元素按從小到大排...

題解 AcWing 1547 約會

原題傳送 acwing 1547.約會 大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四14 04,因為前面兩字串中第 1 11 對...

題解 AcWing177 噩夢

題面 考慮雙向廣搜。我們需要記錄男孩和女孩的當前位置,並且每次都進行擴充套件。記錄乙個陣列 st i j 如果當前擴充套件的是男孩,且當前的位置是 x,y 那麼當 st x y 2 時直接返回當前擴充套件的層數即可 如果當前擴充套件的是女孩,那麼當 st x y 1 時直接返回就可以了。題目中有一句...