67 lines
1.0 KiB
C++
67 lines
1.0 KiB
C++
#include <iostream>
|
|
#include <fstream>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
#include <list>
|
|
|
|
using namespace std;
|
|
|
|
ifstream input_stream;
|
|
ofstream output_stream;
|
|
|
|
|
|
|
|
void fillList(list<uint16_t> &L) {
|
|
int counter = 1;
|
|
for (auto i = L.begin(); i != L.end(); i++) {
|
|
*i = counter;
|
|
counter++;
|
|
}
|
|
}
|
|
|
|
|
|
list<uint16_t> getPositions() {
|
|
uint16_t N, K, R;
|
|
input_stream >> N;
|
|
input_stream >> K;
|
|
input_stream >> R;
|
|
|
|
list<uint16_t> positions (N, 0);
|
|
fillList(positions);
|
|
|
|
for (uint16_t i; i < R; i++) {
|
|
uint16_t loser;
|
|
input_stream >> loser;
|
|
|
|
auto loser_it = positions.begin();
|
|
advance(loser_it, loser-1);
|
|
|
|
loser = *loser_it;
|
|
|
|
positions.erase(loser_it);
|
|
positions.push_back(loser);
|
|
|
|
}
|
|
|
|
return positions;
|
|
}
|
|
|
|
|
|
int main() {
|
|
input_stream.open("input.txt");
|
|
output_stream.open("output.txt");
|
|
|
|
list<uint16_t> positions = getPositions();
|
|
|
|
uint16_t P;
|
|
input_stream >> P;
|
|
|
|
auto dan_it = positions.begin();
|
|
advance(dan_it, P - 1);
|
|
cout << *dan_it << endl;
|
|
|
|
input_stream.close();
|
|
output_stream.close();
|
|
return 0;
|
|
}
|