Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input){
- let sities = {};
- let count = 0;
- for(let sity of input){
- let [town, population, gold] = sity.split('||')
- if(town === 'Sail'){
- break;
- }
- if(!sities.hasOwnProperty(town)){
- sities[town] = [];
- sities[town].push(+(population), +(gold));
- count++;
- }else{
- sities[town][0] += +(population);
- sities[town][1] += +(gold);
- }
- }
- for(let command of input){
- if(command === 'End'){
- break;
- }
- let [plunderOrProsper, town, peopleOrGold, gold] = command.split('=>');
- if(plunderOrProsper === 'Plunder'){
- console.log(`${town} plundered! ${gold} gold stolen, ${peopleOrGold} citizens killed.`);
- sities[town][0] -= +(peopleOrGold);
- sities[town][1] -= +(gold);
- if(0 >= sities[town][0] || sities[town][1] <= 0){
- delete sities[town];
- console.log(`${town} has been wiped off the map!`);
- count--;
- }
- }else if(plunderOrProsper === 'Prosper'){
- if(+(peopleOrGold) < 0){
- console.log('Gold added cannot be a negative number!');
- }else{
- sities[town][1] += +(peopleOrGold);
- console.log(`${peopleOrGold} gold added to the city treasury. ${town} now has ${sities[town][1]} gold.`);
- }
- }
- }
- let result = Object.entries(sities);
- result.sort((a, b)=> b[1][1] - a[1][1] || a[0].localeCompare(b[0]));
- if(result === []){
- console.log('Ahoy, Captain! All targets have been plundered and destroyed!');
- return;
- }
- console.log(`Ahoy, Captain! There are ${count} wealthy settlements to go to:`);
- for(let item of result){
- console.log(`${item[0]} -> Population: ${item[1][0]} citizens, Gold: ${item[1][1]} kg`)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement