1. 程式人生 > >牛客網NOIP賽前集訓營-普及組(第六場)A題金幣

牛客網NOIP賽前集訓營-普及組(第六場)A題金幣

題目連結:https://www.nowcoder.com/acm/contest/170/A 開始想用平方和公式,二分確定r 和l所在的N,再用立方和公式求和。結果二分沒處理好,死迴圈。 參考大佬的程式碼,發現for就行了 ,不會超時。一般什麼資料一遍for 都不會超時(哭)

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
    long long sum,i,l,r,j;
    scanf("%lld%lld",&l,&r);
    sum=0;
    for(i=1,j=1;j<=r;i++,j+=i*i)
    {
        if(j>=l)
        {
            sum+=(j-l+1)*i;
            l=j+1;
        }
    }
    sum+=(r-l+1)*i;
    printf("%lld\n",sum);
    return 0;
}