TopCoder

腦子裝咖哩
想像不出自己 AC 的題目是實作不出來的!雖然想像得出來也不一定可以就是了

User's AC Ratio

96.9% (31/32)

Submission's AC Ratio

38.1% (40/105)

Tags

Description

在資訊時代的現今,資訊安全成為各企業、政府機構甚至每個人的重要課題。由於老闆們開始捨得花大把鈔票在各種套裝的企業專用資訊/網路安全軟體上,這些軟體的價錢也隨著水漲船高。這些昂貴的軟體讓有些老闆甚至有了錯覺-安心地以為花了大把鈔票就可以防堵大部份的資訊安全漏洞。

事實上,員工對資訊安全意識的缺乏仍然是一項主要的安全漏洞,特別是一般人容易刻板地以為具備了強力的資訊安全軟體保護就能夠萬無一失。鬆懈的態度使員工的人為疏失反而更容易成為企業資訊系統的致命傷。這就好像花錢買了昂貴的保險櫃,卻因為沒有更改保險櫃的預設密碼,反而被輕易地破解一樣。

個人密碼設定就是一項最基本,卻又最常被忽略的工作之一。沒有資訊安全意識的人總是忽略了要定期更改密碼的規定,並且使用較容易被破解的密碼,例如使用一個有意義的簡單英文單字,或是個人的生日、電話號碼等當作重要的個人密碼。

你是一個大企業資訊安全部門的程式設計師,請參考以下的檢查流程,幫忙撰寫一個能夠檢查密碼是否夠安全的程式。


  1. 檢查使用者輸入的兩行密碼是否相同 (為了防止在設定密碼過程中不小心打錯某個字,慣例上,系統會要求使用者連續輸入兩次欲設定的密碼)。如果沒有,請輸出:「Password settings are not consistent.

  2. 檢查使用者輸入的密碼長度是否介於 $8$ 到 $12$ 個字元。如果沒有,請輸出:「Password should contain 8 to 12 characters.

  3. 檢查使用者輸入的密碼是否包含至少 $1$ 個大寫英文字。如果沒有,請輸出:「Password should contain at least one upper-case alphabetical character.

  4. 檢查使用者輸入的密碼是否包含至少 $1$ 個小寫英文字。如果沒有,請輸出:「Password should contain at least one lower-case alphabetical character.

  5. 檢查使用者輸入的密碼是否包含至少 $1$ 個數字。如果沒有,請輸出:「Password should contain at least one number.

  6. 檢查使用者輸入的密碼是否包含至少 $1$ 個特殊符號。如果沒有,請輸出:「Password should contain at least one special character.

  7. 特殊符號只考慮以下 $33$ 種: ~!@#$%^&*()_+|`-=\{}[]:";'<>?,./以及空白字元。

  8. 檢查使用者輸入的密碼是否左右對稱,例如 abcdedcba 或 qwerrewq 即為對稱的密碼。如果密碼對稱,請輸出:「Symmetric password is not allowed.

  9. 檢查使用者輸入的密碼是否以 $3\sim 6$ 個字元的長度循環,例如 abcabcabc 以長度 $3$ 循環。即使長度不為 $3\sim 6$ 的倍數亦要進行這項檢查,例如 abcdeabcd 也屬於循環密碼。如果密碼循環,請輸出:
    Circular password is not allowed.


請按照以上順序進行檢查,只要不符合任何一條規則,請輸出訊息並結束檢查。如果通過以上規則的測試,請輸出「Password is valid.」。

Input Format

你的程式必須讀入一個輸入檔,每兩行為一筆測試用的密碼,密碼可能出現的字元包括大小寫英文字母、數字以及上述 $33$ 種特殊符號,密碼長度不超過 $100$ 個字。請依照上述流程檢查該密碼是否安全。
當程式讀到兩行都各只有一個大寫的 END 時,程式應隨即終止,請不要把這兩行 END 當作密碼來檢查。

Output Format

對每一筆測試密碼,請輸出對應的檢查結果於一行中。

Sample Input 1

abcde
abcdd
abcde
abcde
abcdefgh
abcdefgh
ABCDEFGH
ABCDEFGH
abcdEFGH
abcdEFGH
abcDEF12
abcDEF12
aB3,,3Ba
aB3,,3Ba
aB3,aB3,
aB3,aB3,
abCD56<>
abCD56<>
END
END

Sample Output 1

Password settings are not consistent.
Password should contain 8 to 12 characters.
Password should contain at least one upper-case alphabetical character.
Password should contain at least one lower-case alphabetical character.
Password should contain at least one number.
Password should contain at least one special character.
Symmetric password is not allowed.
Circular password is not allowed.
Password is valid.

Hints

由於網頁格式問題,Sample Input 最後會包含一個多餘的空白,測試的時候請小心處理喔 >_<。

Problem Source

原 TIOJ1070 / NPSC2005 初賽 (prob F)

Subtasks

No. Testdata Range Score
1 0 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 262144 1