Cod sursa(job #531785)
// http://infoarena.ro/problema/curcubeu
#include <fstream>
using namespace std;
#define maxSize 1000001
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
struct stuff {
int start,stop,color;
};
stuff previous;
int house[maxSize];
int main() {
int houses,start,stop,color;
in >> houses >> start >> stop >> color;
previous.start = start;
previous.stop = stop;
previous.color = color;
for(int i=min(start,stop);i<=max(start,stop);i++) {
house[i] = color;
}
for(int i=2;i<=houses-1;i++) {
start = (previous.start * i) % houses;
stop = (previous.stop * i) % houses;
color = (previous.color * i) % houses;
for(int k=min(start,stop);k<=max(start,stop);k++)
house[k] = color;
previous.start = start;
previous.stop = stop;
previous.color = color;
}
for(int i=1;i<=houses-1;i++)
out << house[i] << "\n";
return (0);
}