結果

問題 No.2187 三立法和 mod 333
ユーザー AngrySadEight
提出日時 2025-02-21 02:38:45
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 100 ms
コード長 7,179 bytes
コンパイル時間 3,381 ms
コンパイル使用メモリ 179,836 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2025-02-21 02:38:50
合計ジャッジ時間 4,162 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <algorithm>
#include <atcoder/all>
#include <bitset>
#include <cassert>
#include <cmath>
#include <ctime>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <random>
#include <set>
#include <stack>
#include <string>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
using namespace atcoder;
typedef long long ll;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define repr(i, n) for (int i = (int)(n) - 1; i >= 0; i--)
#define repk(i, k, n) for (int i = k; i < (int)(n); i++)
#define all(v) v.begin(), v.end()
#define mod1 1000000007
#define mod2 998244353
#define mod3 100000007
#define vi vector<int>
#define vs vector<string>
#define vc vector<char>
#define vl vector<ll>
#define vb vector<bool>
#define vvi vector<vector<int>>
#define vvc vector<vector<char>>
#define vvl vector<vector<ll>>
#define vvb vector<vector<bool>>
#define vvvi vector<vector<vector<int>>>
#define vvvl vector<vector<vector<ll>>>
#define pii pair<int, int>
#define pil pair<int, ll>
#define pli pair<ll, int>
#define pll pair<ll, ll>
#define vpii vector<pair<int, int>>
#define vpll vector<pair<ll, ll>>
#define vvpii vector<vector<pair<int, int>>>
#define vvpll vector<vector<pair<ll, ll>>>

// using mint = modint998244353;

template <typename T>
void debug(T e) {
    cerr << e << endl;
}

template <typename T>
void debug(vector<T> &v) {
    rep(i, v.size()) { cerr << v[i] << " "; }
    cerr << endl;
}

template <typename T>
void debug(vector<vector<T>> &v) {
    rep(i, v.size()) {
        rep(j, v[i].size()) { cerr << v[i][j] << " "; }
        cerr << endl;
    }
}

template <typename T>
void debug(vector<pair<T, T>> &v) {
    rep(i, v.size()) { cerr << v[i].first << " " << v[i].second << endl; }
}

template <typename T>
void debug(set<T> &st) {
    for (auto itr = st.begin(); itr != st.end(); itr++) {
        cerr << *itr << " ";
    }
    cerr << endl;
}

template <typename T>
void debug(multiset<T> &ms) {
    for (auto itr = ms.begin(); itr != ms.end(); itr++) {
        cerr << *itr << " ";
    }
    cerr << endl;
}

template <typename T>
void debug(map<T, T> &mp) {
    for (auto itr = mp.begin(); itr != mp.end(); itr++) {
        cerr << itr->first << " " << itr->second << endl;
    }
}

void debug_out() { cerr << endl; }

template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
    cerr << H << " ";
    debug_out(T...);
}

using mint = modint998244353;

int main() {
    /*vector<ll> rem(333);
    for (ll x = 1; x <= 4444; x++) {
        for (ll y = 1; y <= 4444; y++) {
            for (ll z = 1; z <= 4444; z++) {
                if (x * x * x * x + y * y * y * y + z * z * z * z <=
                    4444LL * 4444LL * 4444LL * 4444LL) {
                    ll mod = (x * x * x + y * y * y + z * z * z) % 333;
                    rem[mod]++;
                }
            }
        }
    }
    cout << "{";
    for (ll i = 0; i <= 332; i++) {
        cout << rem[i];
        if (i <= 331) {
            cout << ",";
        }
    }
    cout << "}" << endl;*/
    vector<ll> ans = {
        353412483, 499853409, 198066141, 65944976,  0,         0,
        83359314,  197704749, 499956396, 461596998, 499924557, 250031589,
        66025737,  0,         0,         65922195,  197880351, 395804754,
        461671050, 395752629, 197825844, 65951319,  0,         0,
        65936360,  197777304, 499639056, 583029498, 395715012, 249552855,
        66073349,  0,         0,         66026043,  197876565, 395514645,
        582863367, 303214194, 249900573, 66080034,  0,         0,
        65941840,  249952551, 395548158, 583092006, 395796816, 250096923,
        83408904,  0,         0,         83352606,  197785611, 395734917,
        461688090, 395834907, 197910177, 65958885,  0,         0,
        83129445,  197879421, 395601315, 583179990, 499975596, 197894460,
        83217288,  0,         0,         65851552,  197977152, 395723337,
        461598072, 499492386, 151682058, 83391159,  0,         0,
        65982393,  197810568, 499698792, 461615477, 499465320, 197929308,
        83479962,  0,         0,         66034772,  249868407, 395609340,
        461586120, 395850384, 197943681, 65989561,  0,         0,
        66018201,  249605913, 395763186, 461545017, 500244135, 250121904,
        65992770,  0,         0,         83439696,  197582427, 395906010,
        461534357, 395972283, 249747105, 50667829,  0,         0,
        65970890,  197840178, 395783145, 582714366, 395839320, 249607272,
        66034569,  0,         0,         65970813,  197862537, 499837770,
        461586033, 395704725, 197937468, 66025153,  0,         0,
        65971953,  197855130, 499324197, 461779937, 395694588, 250272546,
        83394459,  0,         0,         65931391,  250137234, 395347209,
        461799958, 395664129, 198104688, 83187177,  0,         0,
        65844093,  197915487, 395640954, 461877100, 499267476, 197996145,
        83116794,  0,         0,         83077128,  197816517, 395716419,
        583089981, 395680647, 197847309, 66034770,  0,         0,
        65927544,  197856531, 395729877, 582755274, 395784210, 197870754,
        83518725,  0,         0,         83482623,  197741811, 500063223,
        461407793, 395845749, 197818044, 66124482,  0,         0,
        83419152,  197585898, 395806743, 461487779, 396117981, 249519294,
        66035306,  0,         0,         83193621,  249380424, 395683833,
        461503212, 500027589, 197855943, 65988450,  0,         0,
        65930507,  197764092, 395690775, 461566449, 499518105, 197901777,
        65986020,  0,         0,         65933772,  250096410, 395624835,
        583102701, 395703927, 197915679, 65987298,  0,         0,
        50523021,  249970845, 395405595, 461756184, 395565168, 198146163,
        83144547,  0,         0,         65983467,  249543381, 499087524,
        461617473, 395695518, 250057275, 65957211,  0,         0,
        65974043,  197782437, 395546595, 461593956, 395765376, 249800436,
        65946828,  0,         0,         83100603,  197759865, 499933236,
        461658190, 499637970, 197937693, 65994989,  0,         0,
        83165199,  151389405, 499921449, 461545845, 395752965, 197762508,
        66111248,  0,         0,         83355123,  197818980, 499370913,
        582628467, 395794911, 197844207, 83457036,  0,         0,
        66017907,  197835168, 395622237, 461486226, 395661093, 197892921,
        83237010,  0,         0,         83211351,  249550986, 395580453,
        582788094, 395923029, 249712644, 66025575,  0,         0,
        65897514,  249726033, 302922846, 583014219, 395884293, 197863206,
        65933645,  0,         0,         65893369,  250099782, 395686374,
        582793884, 499733808, 197928006, 66021523,  0,         0,
        66010887,  197890128, 395726169, 461611814, 395609376, 197826183,
        66037128,  0,         0,         65941779,  249662991, 499401411,
        461547663, 499391031, 198039087, 83234613,  0,         0,
        66018343,  197644773, 499469412};
    ll A;
    cin >> A;
    cout << ans[A % 333] << endl;
}
0