Advertisement
al3taibi

Untitled

Jun 2nd, 2022
975
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. #include "iostream"
  2. #include "vector"
  3. #include "map"
  4.  
  5. using namespace std;
  6.  
  7. void increaseLeaveCounter(map<int, int>& leaves_counter, int number) {
  8.     leaves_counter[number]++;
  9. }
  10.  
  11. void addCar(vector<int>& parking, map<int, int>& leaves_counter, int number) {
  12.     parking.insert(parking.begin(), number);
  13.  
  14.     if (!leaves_counter.count(number)) {
  15.         leaves_counter[number] = 0;
  16.     }
  17. }
  18.  
  19. void removeCar(vector<int>& parking, map<int, int>& leaves_counter, int number) {
  20.     for (int i = 0; i < parking.size(); i++) {
  21.         //cout << '>' << parking[i] << '-' << 'i';
  22.         if (parking[i] == number) {
  23.             parking.erase(parking.begin() + i);
  24.             cout << number << ' ' << leaves_counter[number] << endl;
  25.             return;
  26.         } else {
  27.             increaseLeaveCounter(leaves_counter, parking[i]);
  28.         }
  29.     }
  30. }
  31.  
  32. int main() {
  33.     vector<int> Parking;
  34.     map<int, int> LeavesCounter;
  35.     int input, tmp1, tmp2, i;
  36.     string inputString, tmpString1, tmpString2;
  37.     bool secondTemp;
  38.  
  39.     // Первый заезд
  40.     while (true) {
  41.         getline(cin, inputString);
  42.  
  43.         input = stoi(inputString);
  44.  
  45.         if (input == 0) {
  46.             break;
  47.         }
  48.  
  49.         addCar(Parking, LeavesCounter, input);
  50.     }
  51.  
  52.     // Команды
  53.     while (true) {
  54.         tmpString1 = "";
  55.         tmpString2 = "";
  56.  
  57.         getline(cin, inputString);
  58.  
  59.         if (inputString == "0") {
  60.             break;
  61.         }
  62.  
  63.         secondTemp = false;
  64.  
  65.         for (i = 0; i < inputString.size(); i++) {
  66.             if (inputString[i] == ' ') {
  67.                 secondTemp = true;
  68.                 continue;
  69.             }
  70.  
  71.             if (secondTemp) {
  72.                 tmpString2 += inputString[i];
  73.             } else {
  74.                 tmpString1 += inputString[i];
  75.             }
  76.         }
  77.         tmp1 = stoi(tmpString1);
  78.         tmp2 = stoi(tmpString2);
  79.  
  80.         switch (tmp1) {
  81.             case 1:
  82.                 addCar(Parking, LeavesCounter, tmp2);
  83.                 break;
  84.             case 2:
  85.                 removeCar(Parking, LeavesCounter, tmp2);
  86.                 break;
  87.         }
  88.     }
  89.  
  90.     cout << endl;
  91.  
  92.     for (i = 0; i < Parking.size(); i++) {
  93.         tmp1 = Parking[i];
  94.         cout << tmp1 << ' ' << LeavesCounter[tmp1] << endl;
  95.     }
  96.  
  97.  
  98.     return 0;
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement