Cod sursa(job #2262353)

Utilizator Iulia25Hosu Iulia Iulia25 Data 17 octombrie 2018 10:48:48
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda concurs_micut Marime 0.8 kb
#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();
  }
}