結果

問題 No.2187 三立法和 mod 333
ユーザー 👑 testestest
提出日時 2022-12-17 16:02:33
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 12 ms / 100 ms
コード長 3,737 bytes
コンパイル時間 1,879 ms
コンパイル使用メモリ 198,492 KB
最終ジャッジ日時 2025-02-09 15:19:30
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const ll U=4444LL*4444LL*4444LL*4444LL;
const int M=333;
void kasikoi_guchoku(){
//25.199sec on my laptop
clock_t start=clock();
vector<ll>ans(M+1);
for(ll x=1;3*x*x*x*x<=U;x++){
for(ll y=x;x*x*x*x+2*y*y*y*y<=U;y++){
for(ll z=y;x*x*x*x+y*y*y*y+z*z*z*z<=U;z++){
int i=(x*x*x+y*y*y+z*z*z)%M;
if(x!=y&&y!=z)ans[i]+=6;
else if((x==y)^(y==z))ans[i]+=3;
else ans[i]+=1;
}
}
}
ans[M]=ans[0];
ans[0]=0;
for(auto x:ans)cout << x << ",";
cout << endl;
cout << (double)(clock()-start)/CLOCKS_PER_SEC << endl;
}
void hontoni_guchoku(){
//156.562sec on my laptop
clock_t start=clock();
vector<ll>ans(M+1);
for(ll x=1;x*x*x*x<=U;x++){
for(ll y=1;x*x*x*x+y*y*y*y<=U;y++){
for(ll z=1;x*x*x*x+y*y*y*y+z*z*z*z<=U;z++){
ans[(x*x*x+y*y*y+z*z*z)%M]++;
}
}
}
ans[M]=ans[0];
ans[0]=0;
for(auto x:ans)cout << x << ",";
cout << endl;
cout << (double)(clock()-start)/CLOCKS_PER_SEC << endl;
}
int main(){
vector<ll>ans({0,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,353412483});
int a;
cin >> a;
cout << ans[a] << endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0