Modular numbers
Разница между ru1 и ru2, 18 символ(ов) изменены
If you need a structure for modular numbers, here is my:↵


~~~~~↵
const int MOD = 1e9 + 7;
 //Or your one

struct Number {↵
    int value;↵
    Number (int value) {↵
        this->value = (MOD + value) % MOD;↵
    }↵

    friend bool operator< (const Number& a, const Number& b) {↵
        return a.value < b.value;↵
    }↵

    friend bool operator== (const Number& a, const Number& b) {↵
        return a.value == b.value;↵
    }↵

    friend Number operator+ (const Number& a, const Number& b) {↵
        return Number ((a.value + b.value) % MOD);↵
    }↵

    friend Number operator- (const Number& a, const Number& b) {↵
        return Number ((a.value - b.value + MOD) % MOD);↵
    }↵

    friend Number operator* (const Number& a, const Number& b) {↵
        return Number (int(1LL * a.value * b.value % MOD));↵
    }↵

    friend Number operator^ (const Number& a, const Number& k) {↵
        if (k == 0) return 1;↵
        if (k == 1) return a;↵
        Number res = a ^ Number (k.value/2);↵
        return res * res * Number(k.value%2);↵
    }↵


    Number (int a, int k) {↵
        if (k == 0) this->value = 1;↵
        else if (k == 1) this->value = a;↵
        else {↵
            Number res = Number (a, k/2);↵
            res = res * res * Number(a, k%2);↵
            this->value = res.value;↵
        }↵
    }↵

    friend Number operator/ (const Number& a, const Number& b) {↵
        return a * Number(b.value, MOD - 2);↵
    }↵

    friend ostream& operator<<(ostream& os, const Number& a) {↵
        os << a.value;↵
        return os;↵
    }↵
};↵
~~~~~↵

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru2 Русский ColobocCodeforces 2026-02-23 20:35:02 18
ru1 Русский ColobocCodeforces 2026-02-23 20:33:51 1603 Первая редакция (опубликовано)