Pagini recente » Cod sursa (job #2698585) | Cod sursa (job #1098345) | Cod sursa (job #3274781) | Cod sursa (job #508388) | Cod sursa (job #3300476)
#include <fstream>
#include <set>
#include <vector>
#include <bitset>
#include <utility>
#define x first
#define y second
#include <algorithm>
using namespace std;
///ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
/// ---> Fast Input <--- ///
FILE *in; /// Fast Input from files (in = fopen("file.in", "r");)
const int buffsz = (1 << 10);
int buffidx = buffsz - 1;
char buffer[buffsz];
static inline char readchar(){
buffidx = (buffidx + 1) & (buffsz - 1);
if(!buffidx)
fread(buffer, 1, buffsz, in);
return buffer[buffidx];
}
int getint(){
int val = 0; char chr = 0;
for(; isspace(chr = readchar()); );
for(; '0' <= chr && chr <= '9'; chr = readchar())
val = 10 * val + chr - '0';
return val;
}
/// ---> Endd Fast Input <--- ///
typedef pair <int, int> pii;
const int nmax = 1e6;
int n, a[nmax + 2], b[nmax + 2];
int color[nmax + 2];
int value[nmax + 2];
pii lf[nmax + 2];
pii rg[nmax + 2];
int idxlf = 1, idxrg = 1;
bitset <nmax + 2> inuse;
int main(){
in = fopen("curcubeu.in", "r");
///in>>n>>a[1]>>b[1]>>value[1];
n = getint();
a[1] = getint();
b[1] = getint();
value[1] = getint();
for(int i = 2; i <= n - 1; i++){
a[i] = (1ll * a[i - 1] * i) % n;
b[i] = (1ll * b[i - 1] * i) % n;
value[i] = (1ll * value[i - 1] * i) % n;
}
n--; ///op from a, b, value for [1, 2, ..., n - 1]
for(int i = 1; i <= n; i++){
if(a[i] > b[i]) swap(a[i], b[i]);
lf[i] = make_pair(a[i], i);
rg[i] = make_pair(b[i], i);
}
sort(lf + 1, lf + 1 + n);
sort(rg + 1, rg + 1 + n);
for(int i = 1; i <= n; i++)
out<<color[i]<<"\n";
return 0;
}