using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static int minimumNumber(int n, string password) { // Return the minimum number of characters to make the password strong //const string numbers = "0123456789"; //const string lower_case = "abcdefghijklmnopqrstuvwxyz"; //const string upper_case = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const string special_characters = "!@#$%^&*()-+"; var isDigit = false; var isLower = false; var isUpper = false; var isSpecial = false; var rulesCount = 0; foreach(char c in password){ if(char.IsDigit(c)){ if(!isDigit){ isDigit = true; rulesCount++; } } else if(char.IsLower(c)){ if(!isLower){ isLower = true; rulesCount++; } } else if(char.IsUpper(c)){ if(!isUpper){ isUpper = true; rulesCount++; } } else if(special_characters.Contains(c)){ if(!isSpecial){ isSpecial = true; rulesCount++; } }else{ //invalid password return -1; } } if(rulesCount == 4 && password.Length >= 6) return 0; var diffp = (6-password.Length); var diffrc = (4-rulesCount); return Math.Max(diffp, diffrc); } static void Main(String[] args) { int n = Convert.ToInt32(Console.ReadLine()); string password = Console.ReadLine(); int answer = minimumNumber(n, password); Console.WriteLine(answer); } }