Pagini recente » Cod sursa (job #817030) | Borderou de evaluare (job #2410004) | Cod sursa (job #1806245) | Cod sursa (job #982507) | Cod sursa (job #3135616)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
void insert_element(std::vector<int>& S, int k, int e) {
S.insert(S.begin() + k - 1, e);
}
int access_element(const std::vector<int>& S, int k) {
return S[k - 1];
}
void reverse_range(std::vector<int>& S, int i, int j) {
std::reverse(S.begin() + i - 1, S.begin() + j);
}
void delete_range(std::vector<int>& S, int i, int j) {
S.erase(S.begin() + i - 1, S.begin() + j);
}
int main() {
std::ifstream fin("secv8.in");
std::ofstream fout("secv8.out");
int num_operations, has_reverse;
fin >> num_operations >> has_reverse;
std::vector<int> S;
std::vector<int> results;
for (int i = 0; i < num_operations; i++) {
char operation;
int k, e, x, y;
fin >> operation;
if (operation == 'I') {
fin >> k >> e;
insert_element(S, k, e);
} else if (operation == 'A') {
fin >> k;
results.push_back(access_element(S, k));
} else if (operation == 'R') {
fin >> x >> y;
reverse_range(S, x, y);
} else if (operation == 'D') {
fin >> x >> y;
delete_range(S, x, y);
}
}
for (int i = 0; i < results.size(); i++) {
fout << results[i] << '\n';
}
for (int i = 0; i < S.size(); i++) {
fout << S[i] << ' ';
}
fout << '\n';
fin.close();
fout.close();
return 0;
}