ZCRとyyは順番に嘲笑の多くで、IQが減少感じました。。。T_T
MODは、第一整数除算に分かれ、それはSigma_ {i = 1} ^ {N} \ $ NK-iが\ lfloor \ FRAC {K} {I} \ rfloor $を*です。その後ろにシーク。
そして、$ \ lfloorの\のFRAC {K} {I} \ rfloor $が連続して単調に成長して発見しました。$第X $のため、$ [X、\ lfloor \ FRAC {K} {\ lfloorの\のFRAC {K} {I} \ rfloor} \ rfloor]同じサプライヤー内$。あなたは感じることができます。
これは、取得するための法律を見つけることです、そしてQWQを許可しません。私は蓄積のこの期間を$各$を乗じた商ように、各セグメント。
複雑さは、私は当量の\のSQRT {K} $ \ SQRT {K} $ $シード供給を持っているが\ $です。$ I \ GEQ \ SQRT {K}とサプライヤー未満$ \またSQRT {K} $の$時間まで$ \ sqrtの{K} $の種。このように複雑さがルートです。
WA:LONGLONGに宣告することが正しいことと間隔のすべての点は、$ N $を超えています。
1の#include <iostreamの> 2の#include <cstdioを> 3の#include <CStringの> 4の#include <アルゴリズム> 5の#include <cmath> 6 使って 名前空間STD。 7 typedefの長い 長いLL。 8テンプレート<型名T>インラインT _min(TA、TB){ 戻り A <Bを?:B;} 9テンプレート<型名T>インラインT(T&読み取りX)を、{ 10 、X = 0。int型の F = 0 ; char型の C; しばらく(!isdigit(C = getchar関数()))であれば(C ==' - ')、F = 1 。 11 一方(isdigit(c)参照)、X = X * 10 +(C&15)、C = GETCHAR()。返す fはX = - ?X:X; 12 } 13インラインLL和(LL I、LLのJ){ リターン(iはJ + 1)*(J-I + 1)/ 2 ;} 14の LLのANS、N、K。 15 16 INTメイン(){ // freopenは( "test.in"、 "R"、STDIN)。// freopenは( "test.outに"、 "W"、STDOUT)。 17 リード(N)、(k)を読み出す; ANS = N * K(N> K)&&(N = K)。 18 のために(LL Iレジスタ= 1、R = 0 ; iが<= N; I = R + 1)ans- = SUM(I、R = _min(N、K /(K / I)))*(K / I)。 19 リターンのprintf(" %LLDする\ n "、ANS)、0 。 20 }