Cod sursa(job #2650368)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 18 septembrie 2020 15:48:01
Problema Curcubeu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;

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

struct event{
  int timp;
  bool tip;
  int col, pri;
  friend bool operator<(event a, event b){
    return a.timp<b.timp;
  }
};

set<pair<int, int>> s;

int a, b, c, n;
vector<event> v;

int main()
{
  fin>>n>>a>>b>>c;
  for(int i=1;i<n;++i){
    int l=min(a, b), r=max(a, b);
    int pri=n-i;
    v.push_back({l, 1, c, pri});
    v.push_back({r+1, 0, c, pri});
    a=a*(i+1)%n;
    b=b*(i+1)%n;
    c=c*(i+1)%n;
  }
  sort(v.begin(), v.end());
  s.insert({n, 0});
  int it=0;
  for(int i=1;i<n;++i){
    while(it<v.size()&&v[it].timp==i){
      if(v[it].tip) s.insert({v[it].pri, v[it].col});
      else s.erase({v[it].pri, v[it].col});
      it++;
    }
    fout<<(*(s.begin())).second<<"\n";
  }
  return 0;
}