Pagini recente » Cod sursa (job #2115074) | Cod sursa (job #1183431) | Cod sursa (job #1717288) | Cod sursa (job #505516) | Cod sursa (job #2262350)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");
struct idk {
int c, i, e;
} s[1000000];
int n, a, b, c, x[1000000];
auto compare = [](idk a1, idk a2) {
return (a1.i > a2.i);
};
priority_queue <idk, vector<idk>, decltype(compare)> q(compare);
int main() {
fin >> n >> a >> b >> c;
if (b < a)
swap(a, b);
s[a].c = c;
s[a].i = 1;
s[a].e = b;
for (int i = 2; i < n; ++i) {
a = a * i % n;
b = b * i % n;
c = c * i % n;
if (b < a)
swap(a, b);
s[a].c = c;
s[a].i = i;
s[a].e = b;
}
for (int i = 1; i < n; ++i) {
if (s[i].c) {
q.push(s[i]);
}
fout << q.top().c << '\n';
while (!q.empty() && q.top().e <= i)
q.pop();
}
}