原題傳送: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 時直接返回就可以了。題目中有一句...