【zznu-2173】

题目链接

题目描述

春天自幼学习人间大道,斩断情缘,现已修成正果,势必要斩尽巨魔。
某朝末年,战乱四起,民不聊生,魔界与人间界的封印减弱,n只巨魔趁机降临人间,祸乱百姓。
n只巨魔只知扰乱人间,会有天谴降临,所以排阵出了失传已久的一字长蛇阵。以天道使者春天为原点,分别在1,2,3...n公里处,春天日行一公里前进;
第 i 为位置巨魔日啖百姓 i 万 主角诛杀此魔需 i 天时间 主角从出发地赶往此地需 i 日
击杀 i 魔头时   i 魔头无法吞吃百姓。
由于春天看到巨魔太多乱了分寸,所以击杀顺序并不唯一,求出巨魔最少吞吃多少万百姓以及最多吞吃多少万百姓。  
 

输入

每行一个正整数n(0<n<1e4);
 

输出

两个正整数,分别表示巨魔最少吞吃以及最多吞吃多少百姓,用空格隔开。

样例输入

1
2

样例输出

1 1
7 9
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
    LL n;
    while(~scanf("%lld", &n))
    {
        LL l = 1, r = n;
        LL s = (1+n)*n/2;
        LL ans = 0, ans1 = 0;
        LL ss = s;
        for(LL i = 1; i <= n; i++)
        {
            ans1 += ss*i;
            ss -= i;
        }
        while(l <= r)
        {
            ans += (r-l+1)*s;
            s -= r;
            if(s <= 0) break;
            ans += r*s;
            r--;
            ans += (r-l+1)*s;
            s -= l;
            if(s <= 0) break;
            ans += l*s;
            l++;
        }
        printf("%lld %lld
", ans1, ans);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/lesroad/p/9502441.html