Cod sursa(job #2262364)

Utilizator Iulia25Hosu Iulia Iulia25 Data 17 octombrie 2018 10:56:26
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda concurs_micut Marime 0.68 kb
#include <fstream>
#include <queue>

using namespace std;

ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");

int n, a[1000000], b[1000000], c[1000000];
int urm[1000000], x[1000000], s, d;

int main()  {
  fin >> n >> a[1] >> b[1] >> c[1];
  urm[1] = 1;
  for (int i = 2; i < n; ++i)  {
    a[i] = 1LL * a[i - 1] * i % n;
    b[i] = 1LL * b[i - 1] * i % n;
    c[i] = 1LL * c[i - 1] * i % n;
  }
  for (int i = n - 1; i; --i)  {
    s = min(a[i], b[i]);
    d = max(a[i], b[i]);
    while (s <= d)  {
      if (x[s] == 0)  {
        urm[s] = d + 1;
        x[s] = c[i];
        ++s;
      } else
        s = urm[s];
    }
  }
  for (int i = 1; i < n; ++i)
    fout << x[i] << '\n';
}