Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- int N, T, A, X, Y, begin = -1, end = -1, rest = 0, tam = 0;
- vector<int> taps;
- vector<int> numbers;
- cin >> N >> T >> A >> X >> Y;
- vector<int> rests(X, 0);
- for (int i = 0; i < T; i++) {
- int aux;
- cin >> aux;
- taps.push_back(aux);
- }
- if (Y == 1 && A % X == 0) begin = end = 0;
- while (begin == -1 && end == -1) {
- rest = (rest + A) % X;
- numbers.push_back(A);
- tam++;
- if ((rests[rest] != 0 and (tam - rests[rest]) >= Y) or (Y == 1 and A % X == 0)) {
- begin = rests[rest];
- end = tam - 1;
- break;
- }
- rests[rest] = tam;
- int bit = A & 1;
- for (int i = 1; i < T; i++)
- bit ^= (A >> (taps[i])) & 1;
- A >>= 1;
- A |= bit << (N - 1);
- }
- cout << begin << " " << end << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement