Cod sursa(job #796039)

Utilizator deneoAdrian Craciun deneo Data 10 octombrie 2012 14:15:47
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;

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

#define MAXN 1100000

struct elem {
    int dist, layer, culoare;
}v[MAXN];

elem aux;
int a, b, c, n;

int main() {
    int i;
    fin >> n >> a >> b >> c;
    if (a > b) 
        swap(a, b);
    v[a].dist = b - a;
    v[a].layer = 1;
    v[a].culoare = c;
    for (i = 2; i <= n; ++i) {
        a = (a * i) % n;
        b = (b * i) % n;
        c = (c * i) % n;
        if (a > b)
            swap(a, b);
        v[a].dist = b - a;
        v[a].layer = i;
        v[a].culoare = c;
    }
    for (i = 1; i < n; ++i) {
        if (v[i].layer != 0) 
            if (aux.dist < 0 || aux.layer < v[i].layer)
                aux = v[i];
        if (aux.dist < 0)
            fout << 0 << "\n";
        else
            fout << aux.culoare << "\n";
        --aux.dist;
    }
    return 0;
}