結果

問題 No.2127 Mod, Sum, Sum, Mod
ユーザー kotatsugamekotatsugame
提出日時 2022-11-18 22:07:55
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 7 ms / 2,000 ms
コード長 591 bytes
コンパイル時間 676 ms
コンパイル使用メモリ 68,608 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-20 02:28:09
合計ジャッジ時間 1,528 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~

ソースコード

diff #

#include<iostream>
#include<atcoder/modint>
using namespace std;
using mint=atcoder::modint998244353;
int N,M;
const mint inv2=mint(1)/2,inv6=mint(1)/6;
mint f1(int n){return mint(n)*(n+1)*inv2;}
mint f2(int n){return mint(n)*(n+1)*(2*n+1)*inv6;}
main()
{
	cin>>N>>M;
	int r=M;
	mint ans=0;
	while(r>=1)
	{
		int q=N/r;
		int l=N/(q+1);
		//l<j<=r -> N/j=q
		//q*((j**2-j)/2)+((N-q*j)**2+(N-q*j))/2
		ans+=q*((f2(r)-f2(l))-(f1(r)-f1(l)))*inv2;
		ans+=mint(r-l)*N*(N+1)*inv2;
		ans-=(mint(2)*N*q+q)*(f1(r)-f1(l))*inv2;
		ans+=mint(q)*q*(f2(r)-f2(l))*inv2;
		r=l;
	}
	cout<<ans.val()<<endl;
}
0