fork download
  1. import java.io.IOException;
  2. import java.util.HashMap;
  3. import java.io.OutputStreamWriter;
  4. import java.io.InputStreamReader;
  5. import java.io.BufferedReader;
  6. import java.io.PrintWriter;
  7.  
  8. class Recode{
  9. String pass;
  10. boolean hear;
  11. public Recode(String pass, boolean hear){
  12. this.pass = pass;
  13. this.hear = hear;
  14. }
  15. }
  16.  
  17. class Comments {
  18. public static String errNewAdd = "fail: user already exists\n";
  19. public static String errLogin = "fail: no such user\n";
  20. public static String errInPass = "fail: incorrect password\n";
  21. public static String errAlIn = "fail: already logged in\n";
  22. public static String errLogout = "fail: already logged out\n";
  23. public static String sucNewAdd = "success: new user added\n";
  24. public static String sucLogin = "success: user logged in\n";
  25. public static String sucLogout = "success: user logged out\n";
  26. }
  27.  
  28. public class Main{
  29. private static HashMap<String, Recode> DataBase = new HashMap<String, Recode>();
  30.  
  31. private static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  32. private static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  33.  
  34. public static void main(String[] args) throws java.lang.Exception{
  35. int n = nextInt();
  36. for (int i = 0; i < n; i++){
  37. try{
  38. Query(getRequest());
  39. }
  40. catch(Exception e){
  41. err(e);
  42. }
  43. }
  44. out.flush();
  45. }
  46.  
  47. public static String[] getRequest() throws IOException{
  48. return in.readLine().split(" ");
  49. }
  50.  
  51. public static void Query(String[] req){
  52. if(req[0].equals("register")){ // if register - we member the password and name
  53. Registration(req[1], req[2]);
  54. }
  55. else if(req[0].equals("login")){
  56. Login(req[1],req[2]);
  57. }
  58. else if(req[0].equals("logout")){
  59. Logout(req[1]);
  60. }
  61. }
  62.  
  63. public static void Registration(String user, String pass){
  64. if(!DataBase.containsKey(user)){
  65. DataBase.put(user, new Recode(pass, false));
  66. out.print(Comments.sucNewAdd);
  67. }
  68. else{
  69. out.print(Comments.errNewAdd);
  70. }
  71. }
  72.  
  73.  
  74. public static void Login(String user, String pass){
  75. if(DataBase.containsKey(user)){
  76. if(DataBase.get(user).pass.equals(pass)){
  77. if(!DataBase.get(user).hear){
  78. DataBase.put(user, new Recode(pass, true));
  79. out.print(Comments.sucLogin);
  80. }
  81. else out.print(Comments.errAlIn);
  82. }
  83. else out.print(Comments.errInPass);
  84. }
  85. else out.print(Comments.errLogin);
  86. }
  87.  
  88. public static void Logout(String user){
  89. if(DataBase.containsKey(user)){
  90. if(DataBase.get(user).hear){
  91. DataBase.put(user, new Recode(DataBase.get(user).pass, false));
  92. out.print(Comments.sucLogout);
  93. }
  94. else out.print(Comments.errLogout);
  95. }
  96. else out.print(Comments.errLogin);
  97. }
  98.  
  99. public static int nextInt() throws IOException{
  100. return Integer.parseInt(in.readLine());
  101. }
  102.  
  103. private static void err(Object a){
  104. out.println(a);
  105. }
  106. }
Success #stdin #stdout 0.12s 320576KB
stdin
6
register vasya 12345
login vasya 1234
login vasya 12345
login anakin C-3PO
logout vasya
logout vasya
stdout
success: new user added
fail: incorrect password
success: user logged in
fail: no such user
success: user logged out
fail: already logged out