全部评论 4

  • #include <unistd.h>
    
    int read_int() {
        char buf[16];
        int n = read(0, buf, 16);
        int x = 0;
        for (int i = 0; i < n && buf[i] >= '0'; ++i)
            x = x * 10 + (buf[i] - '0');
        return x;
    }
    
    void write_long(long long x) {
        char buf[32];
        int i = 31;
        buf[31] = '\n';
        do {
            buf[--i] = '0' + (x % 10);
            x /= 10;
        } while (x);
        write(1, buf + i, 32 - i);
    }
    
    int main() {
        int k = read_int();
        int lo = 1, hi = 2e9;
        while (lo < hi) {
            int mid = lo + (hi - lo + 1) / 2;
            if ((long long)mid * (mid + 1) / 2 <= k)
                lo = mid;
            else
                hi = mid - 1;
        }
        int m = lo;
        long long total = (long long)m * (m + 1) * (2 * m + 1) / 6;
        total += (long long)(k - m * (m + 1) / 2) * (m + 1);
        write_long(total);
        return 0;
    }//可以试试测了好几遍最快的
    

    昨天 来自 甘肃

    0
  • #include<bits/stdc++.h>
    using namespace std;
    int main(){
    int k;
    int n=1,sum=0;
    cin>>k;
    while(k>0){
    for(int i=1;i<=n;i++){
    if(k==0) break;
    k--;
    sum+=n;
    }
    n++;
    }
    cout<<sum;
    return 0;
    }

    2024-07-21 来自 北京

    0
  • #include<bits/stdc++.h>
    using namespace std;
    int n,a,sum=1;
    int main(){
    	cin>>n;
    	while(true){
    		for(int j=1;j<=sum;j++){
    			a+=sum;
    			n--;
    			if(n==0){
    				cout<<a;
    				return 0;
    			}
    		}
    		sum++;
    	}
    	return 0;
    }
    

    2024-07-21 来自 广东

    0
  • 有啊

    https://www.acgo.cn/problemset/55/89?tab=explanation

    2023-10-02 来自 四川

    0

热门讨论