Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "iostream"
- #include "vector"
- #include "map"
- using namespace std;
- void increaseLeaveCounter(map<int, int>& leaves_counter, int number) {
- leaves_counter[number]++;
- }
- void addCar(vector<int>& parking, map<int, int>& leaves_counter, int number) {
- parking.insert(parking.begin(), number);
- if (!leaves_counter.count(number)) {
- leaves_counter[number] = 0;
- }
- }
- void removeCar(vector<int>& parking, map<int, int>& leaves_counter, int number) {
- for (int i = 0; i < parking.size(); i++) {
- //cout << '>' << parking[i] << '-' << 'i';
- if (parking[i] == number) {
- parking.erase(parking.begin() + i);
- cout << number << ' ' << leaves_counter[number] << endl;
- return;
- } else {
- increaseLeaveCounter(leaves_counter, parking[i]);
- }
- }
- }
- int main() {
- vector<int> Parking;
- map<int, int> LeavesCounter;
- int input, tmp1, tmp2, i;
- string inputString, tmpString1, tmpString2;
- bool secondTemp;
- // Первый заезд
- while (true) {
- getline(cin, inputString);
- input = stoi(inputString);
- if (input == 0) {
- break;
- }
- addCar(Parking, LeavesCounter, input);
- }
- // Команды
- while (true) {
- tmpString1 = "";
- tmpString2 = "";
- getline(cin, inputString);
- if (inputString == "0") {
- break;
- }
- secondTemp = false;
- for (i = 0; i < inputString.size(); i++) {
- if (inputString[i] == ' ') {
- secondTemp = true;
- continue;
- }
- if (secondTemp) {
- tmpString2 += inputString[i];
- } else {
- tmpString1 += inputString[i];
- }
- }
- tmp1 = stoi(tmpString1);
- tmp2 = stoi(tmpString2);
- switch (tmp1) {
- case 1:
- addCar(Parking, LeavesCounter, tmp2);
- break;
- case 2:
- removeCar(Parking, LeavesCounter, tmp2);
- break;
- }
- }
- cout << endl;
- for (i = 0; i < Parking.size(); i++) {
- tmp1 = Parking[i];
- cout << tmp1 << ' ' << LeavesCounter[tmp1] << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement