Advertisement
Spocoman

03. Moving Target

Nov 8th, 2023 (edited)
612
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. int main() {
  10.     int n;
  11.     string line;
  12.     getline(cin, line);
  13.  
  14.     istringstream stream(line);
  15.  
  16.     vector<int> targets;
  17.  
  18.     while (stream >> n) {
  19.         targets.push_back(n);
  20.     }
  21.  
  22.     string command;
  23.     cin >> command;
  24.  
  25.     while (command != "End") {
  26.         int index, value;
  27.         cin >> index >> value;
  28.  
  29.         if (command == "Shoot") {
  30.             if (index >= 0 && index < targets.size()) {
  31.                 targets[index] -= value;
  32.                 if (targets[index] <= 0) {
  33.                     targets.erase(targets.begin() + index);
  34.                 }
  35.             }
  36.         }
  37.         else if (command == "Add") {
  38.             if (index >= 0 && index < targets.size()) {
  39.                 targets.insert(targets.begin() + index, value);
  40.             }
  41.             else {
  42.                 cout << "Invalid placement!\n";
  43.             }
  44.         }
  45.         else if (command == "Strike") {
  46.             if (index - value >= 0 && index + value < targets.size()) {
  47.                 targets.erase(targets.begin() + index - value, targets.begin() + value + index + 1);
  48.             }
  49.             else {
  50.                 cout << "Strike missed!\n";
  51.             }
  52.         }
  53.         cin >> command;
  54.     }
  55.  
  56.     for (int i = 0; i < targets.size(); i++) {
  57.         cout << targets[i] << (i < targets.size() - 1 ? "|" : "");
  58.     }
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement