Pagini recente » Cod sursa (job #3267092) | Cod sursa (job #2934599) | Cod sursa (job #2227260) | Cod sursa (job #1980244) | Cod sursa (job #1490749)
#include <vector>
#include <fstream>
#include <utility>
using namespace std;
int main(){
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
int n, a, b, c;
f >> n >> a >> b >> c;
vector<int> a_uri(n), b_uri(n), c_uri(n);
a_uri[1] = a, b_uri[1] = b, c_uri[c] = c;
for(int i = 2; i < n; ++i){
a_uri[i] = ((long long)a_uri[i-1] * i) % n;
b_uri[i] = ((long long)b_uri[i-1] * i) % n;
c_uri[i] = ((long long)c_uri[i-1] * i) % n; }
vector<int> rez(n, 0), next(n, 0);
for(int i = n-1; i >= 1; --i){
int st = a_uri[i], dr = b_uri[i];
if(st > dr){
swap(st, dr); }
for(int j = st; j <= dr; ){
if(next[j] == 0){
next[j] = dr+1;
rez[j] = c_uri[i];
++j; }
else{
j = next[j]; } } }
for(int i = 1; i < n; ++i){
g << rez[i] << '\n'; }
return 0; }