Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input){
- let num = Number(input.shift());
- // console.log(num);
- let messages = {};
- // let messagesSent = {};
- // let messagesReceived = {};
- for(let i = 0; i < input.length; i++){
- let arr = input[i].split('=');
- let command = arr[0];
- let user = arr[1];
- let arg2 = arr[2];
- let arg3 = arr[3];
- // console.log(command);
- switch(command){
- case "Add":
- if(!messages.hasOwnProperty(user)){
- messages[user] = {
- sent: Number(arg2),
- received: Number(arg3)
- }
- }
- break;
- case "Message":
- let sender = arr[1];
- let receiver = arr[2];
- if(messages.hasOwnProperty(sender) && messages.hasOwnProperty(receiver)){
- messages[sender].sent++;
- messages[receiver].received++;
- if(messages[sender].sent + messages[sender].received >= num){
- console.log(`${sender} reached the capacity!`);
- delete (messages[sender]);
- }
- if(messages[receiver].sent + messages[receiver].received >= num){
- console.log(`${receiver} reached the capacity!`);
- delete (messages[receiver]);
- }
- }
- break;
- case "Empty":
- if(messages.hasOwnProperty(user)){
- delete messages[user];
- }
- if(user ==='All'){
- messages = {};
- } else {
- delete messages[user]
- }
- break;
- case "Statistics":
- break;
- }
- }
- let sorted = Object.entries(messages).sort((a,b) => b[1].received - a[1].received || a[0].localeCompare(b[0]));
- console.log(`Users count: ${sorted.length}`);
- for(let kvp of sorted){
- console.log(`${kvp[0]} - ${kvp[1].received + kvp[1].sent}`);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment