In this HackerEarth Ants on a circle problem solution In a country X, all the ants move in a circle. There is a circle marked with N marks with numbers from 1 to N clockwise. There are M ants on the circle. No two ants stand on the same mark initially. It is also known in which direction each ant will move. If two ants meet during the movement, then each of them begins to move in a different direction. Your task is to determine where the ants will be after T seconds of such movement.


HackerEarth Ants on a circle problem solution


HackerEarth Ants on a circle problem solution.

#include <bits/stdc++.h>
using namespace std;

int n, m, t;
vector<int> a;

int main() {

cin >> n >> m >> t;
a.resize(m);
for (int i = 0; i < m; ++i) {
int x, y;
cin >> x >> y;
x = (x - 1 + y * t) % n;
x = (x + n) % n;
a[i] = x;
}
sort(a.begin(), a.end());
for (int i = 0; i < a.size(); ++i) {
cout << a[i] + 1 << ' ';
}
return 0;
}

Second solution

n, m, t = map(int, input().split())
ans = []
for i in range(m):
x, y = map(int, input().split())
ans += [(x - 1 + y * t % n + n) % n + 1]
print(*sorted(ans))