Advertisement
ErolKZ

Untitled

Dec 5th, 2021
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. function solve(input) {
  2.  
  3.  
  4. let capPerUsr = input.shift();
  5.  
  6. let obj = {};
  7.  
  8. let arr = [];
  9.  
  10.  
  11.  
  12. while (input[0] !== 'Statistics') {
  13.  
  14. let cur = input.shift().split('=');
  15.  
  16. let command = cur.shift();
  17.  
  18.  
  19. if (command === 'Add') {
  20.  
  21. let userName = cur[0];
  22.  
  23. let number = Number(cur[1]) + Number(cur[2]);
  24.  
  25. if (!obj.hasOwnProperty(userName)) {
  26.  
  27. obj[userName] = number;
  28.  
  29. }
  30.  
  31.  
  32. } else if (command === 'Message') {
  33.  
  34. let sender = cur[0];
  35.  
  36. let reciever = cur[1];
  37.  
  38. if (obj.hasOwnProperty(sender) && obj.hasOwnProperty(reciever)) {
  39.  
  40. obj[sender] += 1;
  41.  
  42. obj[reciever] += 1;
  43.  
  44. if (obj[sender] === Number(capPerUsr)) {
  45.  
  46. delete obj[sender];
  47.  
  48. console.log(`${sender} reached the capacity!`);
  49.  
  50. }
  51.  
  52.  
  53. if (obj[reciever] === Number(capPerUsr)) {
  54.  
  55. delete obj[reciever];
  56.  
  57. console.log(`${reciever} reached the capacity!`);
  58.  
  59. }
  60.  
  61.  
  62. }
  63.  
  64.  
  65. } else if (command === 'Empty') {
  66.  
  67. let userName = cur[0];
  68.  
  69. if (obj.hasOwnProperty(userName)) {
  70.  
  71. delete obj[userName];
  72.  
  73. }
  74.  
  75. if (userName === 'All') {
  76.  
  77. obj = {};
  78.  
  79. }
  80.  
  81. }
  82.  
  83.  
  84. }
  85.  
  86.  
  87.  
  88.  
  89. for (let key in obj) {
  90.  
  91. arr.push([key, obj[key]]);
  92.  
  93. }
  94.  
  95.  
  96. arr.sort((a, b) => a[1] === b[1] ? a[0].localeCompare(b[0]) : b[1] - a[1]);
  97.  
  98.  
  99.  
  100. console.log(`Users count: ${arr.length}`);
  101.  
  102. for (let el of arr) {
  103.  
  104. console.log(`${el[0]} - ${el[1]}`);
  105.  
  106. }
  107.  
  108.  
  109. }
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement