fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. public class Main
  6. {
  7. public static String register(String username, String password, HashMap< String, String> usersAndPasswords)
  8. {
  9. //проверяем, есть ли такой пользователь
  10. if(usersAndPasswords.containsKey(username)){
  11. //если есть, то мы не можем добавить нового с таким же именем
  12. return "fail: user already exists";
  13. } else {
  14. //если нет, то добавляем нового пользователя
  15. usersAndPasswords.put(username, password);
  16. return "success: new user added";
  17. }
  18. }
  19. public static String login(String username, String password, HashMap< String, String> usersAndPasswords, HashMap< String, Integer> loggedInUsers)
  20. {
  21. //проверяем, зарегистрирован ли такой пользователь
  22. if(usersAndPasswords.containsKey(username)){
  23. //проверяем, совпадает ли зарегистрированный пароль с введенным паролем
  24. if (usersAndPasswords.get(username).equals(password)){
  25. //проверяем, есть ли такой пользователь в списке вошедших пользователей
  26. if(loggedInUsers.containsKey(username)) {
  27. return "fail: already logged in";
  28. } else {
  29. loggedInUsers.put(username,1);
  30. return "success: user logged in";
  31. }
  32. } else return "fail: incorrect password";
  33. } else return "fail: no such user";
  34. }
  35. public static String logout(String username, HashMap< String, String> usersAndPasswords, HashMap< String, Integer> loggedInUsers)
  36. {
  37. //проверяем, зарегистрирован ли такой пользователь
  38. if(usersAndPasswords.containsKey(username)){
  39. //проверяем, есть ли пользователь в списке вошедших
  40. if(loggedInUsers.containsKey(username)) {
  41. //если есть, то удаляем его
  42. loggedInUsers.remove(username);
  43. return "success: user logged out";
  44. } else return "fail: already logged out";
  45. } else return "fail: no such user";
  46. }
  47. public static void main (String[] args)
  48. {
  49. Scanner sc = new Scanner(System.in);
  50. int n;
  51. n = sc.nextInt();
  52. //список зарегистрированных пользователей и их пароли
  53. HashMap< String, String> usersAndPasswords = new HashMap< String, String>();
  54. //список вошедших пользователей
  55. HashMap< String, Integer> loggedInUsers = new HashMap< String, Integer>();
  56. String command;
  57. String username;
  58. String password;
  59. for(int i = 0; i < n; i++) {
  60. command = sc.next();
  61. if(command.equals("register")) {
  62. username = sc.next();
  63. password = sc.next();
  64. System.out.println(register(username, password, usersAndPasswords));
  65. } else if(command.equals("login")){
  66. username = sc.next();
  67. password = sc.next();
  68. System.out.println(login(username, password, usersAndPasswords, loggedInUsers));
  69. } else if(command.equals("logout")){
  70. username = sc.next();
  71. System.out.println(logout(username, usersAndPasswords, loggedInUsers));
  72. }
  73. }
  74. }
  75. }
Success #stdin #stdout 0.15s 321280KB
stdin
6 
register alena 223344
login alena 223
login alena 223344
login john 454545
logout alena
logout alena
stdout
success: new user added
fail: incorrect password
success: user logged in
fail: no such user
success: user logged out
fail: already logged out