Pagini recente » Cod sursa (job #2998829) | Cod sursa (job #318967) | Cod sursa (job #1270058) | Cod sursa (job #2544831) | Cod sursa (job #2262353)
#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;
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]);
if (!q.empty())
fout << q.top().c << '\n';
else
fout << 0 << '\n';
while (!q.empty() && q.top().e <= i)
q.pop();
}
}