Advertisement
fbinnzhivko

Untitled

Dec 17th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input){
  2.     let airport = new Map();
  3.     let leftPlanes = new Set();
  4.     for(let request of input){
  5.         // console.log(airport)
  6.         let [id, town, passengers, action] = request.split(' ')
  7.         passengers = Number(passengers)
  8.         if(action == 'land'){
  9.             if(!leftPlanes.has(id)){
  10.                 leftPlanes.add(id);
  11.                 if(!airport.has(town)){
  12.                     let obj = {'arrivals': passengers, 'departures': 0, planes: new Set()};
  13.                     obj['planes'].add(id);
  14.                     airport.set(town, obj);
  15.                 }
  16.                 else{
  17.                     airport.get(town)['arrivals'] += passengers;
  18.                     airport.get(town)['planes'].add(id);
  19.                 }
  20.             }
  21.  
  22.         }
  23.         else if(action=='depart'){
  24.             if(leftPlanes.has(id)){
  25.                 leftPlanes.delete(id);
  26.                 if(airport.has(town)){
  27.                     airport.get(town)['departures'] += passengers;
  28.                     airport.get(town)['planes'].add(id);
  29.                 }
  30.                 else{
  31.                     let obj = {'arrivals': 0, 'departures': passengers, planes: new Set()};
  32.                     obj['planes'].add(id);
  33.                     airport.set(town, obj);
  34.                 }
  35.             }
  36.         }
  37.  
  38.     }
  39.  
  40.     let leftPlanesArr = Array.from(leftPlanes)
  41.     leftPlanesArr.sort(function (a, b) {
  42.         if (a.toUpperCase() < b.toUpperCase()) {
  43.             return -1;
  44.         }
  45.         if (a.toUpperCase() > b.toUpperCase()) {
  46.             return 1;
  47.         }
  48.         return 0;
  49.     })
  50.     console.log("Planes left:")
  51.     for(let plane of leftPlanesArr){
  52.         console.log("- " + plane)
  53.     }
  54.  
  55.     let airportArr = Array.from(airport)
  56.     airportArr.sort(function (a, b) {
  57.         if (a[1]['arrivals'] < b[1]['arrivals']) //sort arrivals descending
  58.             return 1;
  59.         if (a[1]['arrivals'] > b[1]['arrivals'])
  60.             return -1;
  61.  
  62.         if (a[0].toUpperCase() > b[0].toUpperCase()) {
  63.             return -1;
  64.         }
  65.         if (a[0].toUpperCase() < b[0].toUpperCase()) {
  66.             return 1;
  67.         }
  68.         return 0;
  69.     });
  70.  
  71.     for(let array of airportArr){
  72.         let townName = array[0];
  73.         console.log(townName);
  74.         let arrivals = array[1]['arrivals'];
  75.         let departures = array[1]['departures'];
  76.         console.log("Arrivals: " + arrivals);;
  77.         console.log('Departures: ' + departures);
  78.         let planesInTown = array[1]['planes'];
  79.         let planesArr = Array.from(planesInTown);
  80.         planesArr.sort(function (a, b) {
  81.             if (a.toUpperCase() < b.toUpperCase()) {
  82.                 return -1;
  83.             }
  84.             if (a.toUpperCase() > b.toUpperCase()) {
  85.                 return 1;
  86.             }
  87.             return 0;
  88.         })
  89.         console.log("Planes:")
  90.         for(let plane of planesArr){
  91.             console.log("-- " + plane)
  92.         }
  93.     }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement