気持ちは、この水問題NM地方の選挙NOI-の知性を侮辱しました。。。。
一次元の直接列挙、それは単調に別の次元を増加させ、その後、直接それに答えを計算しません。。。。
と
#include <ビット/ STDC ++ H> の#defineは長い長いllの 名前空間stdを使用します。 const int型ヘクタール= 1E9 + 7。 インラインINTは、(int型のx、int型のY){X + = Yを追加します。?X> = HA X-HA返す:X;} インラインボイドADD(INT&X、int型のY){X + Y =。IF(X> = HA)のx = HA;} int型tqz(INT X){ LL = X *(LL)(X + 1)>> 1。 (%3 == 0)場合には(2 * X + 1)%HA / 3%のHA *(LL)を返します。 他%のHAの*(LL)((2 * X + 1)/ 3)%のHAを返します。 } R LL。 INTのANS、L、R。 INTメイン(){ scanf関数( "%のLLD"、&R)。 {(; L×(LL)L <R L ++ L = 1、R =(INT)床(SQRT(R-1 + 0.001)))のために 、一方(L×(LL)L + R *(LL)R > R)r--の。 (ANS(tqz(r)は、のL *(LL)L%HA *(LL)R%のHA)を追加)を追加。 } ANS = ANS * 4LL%ヘクタール。 printf(」 R =(INT)床(SQRT(R + 0.001))。 (ANS、4 *(LL)tqz(R)%HA)を加えます。 0を返します。 }