Pagini recente » Cod sursa (job #1008718) | Cod sursa (job #3342735) | Cod sursa (job #426717) | Cod sursa (job #110887) | Cod sursa (job #3316532)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int N;
int A, B, C;
fin >> N >> A >> B >> C;
vector<int> color(N, 0); // culoarea fiecărei căsuțe (index 1..N-1)
vector<int> last_update(N, 0); // timpul ultimei actualizări
for (int i = 1; i <= N - 1; ++i) {
int l = min(A, B);
int r = max(A, B);
// validare căsuțe (sunt de la 1 la N-1)
if (l == 0) l = 1;
if (r >= N) r = N - 1;
for (int j = l; j <= r; ++j) {
if (last_update[j] < i) {
color[j] = C;
last_update[j] = i;
}
}
// următoarea operație
A = (1LL * A * (i + 1)) % N;
B = (1LL * B * (i + 1)) % N;
C = (1LL * C * (i + 1)) % N;
}
for (int i = 1; i <= N - 1; ++i) {
fout << color[i] << "\n";
}
return 0;
}