E 美味的序列 边加边减就行,用long long存答案

美味的序列

http://www.nowcoder.com/questionTerminal/ffc6dd1e6fac42da96f6a48396855eeb

E 美味的序列
边加边减就行,用long long存答案,顺便一提,全加起来再减应该不行,过不了

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool cmp(int a,int b){return a>b;}
int a[100010];
int main(){
    int n;
    while(cin>>n){
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        sort(a,a+n,cmp);
        ll ans=0,d=0;
        for(int i=0;i<n;i++,d++){
            ans+=a[i]-d;
        }
        cout<<ans<<endl;
    }
    return 0;
}

最后奉上一下我之前百思不得其解的wa,总不能我真的是d算错了?
图片说明

全部评论
大佬,可以不排序的,直接获取数据的时候边加边减也加快效率节省空间 #include<iostream> using namespace std; int main() { int n, s; long long sum; cin >> n; for (int i = 0;i < n;i++) { cin >> s; sum += s; sum -= i; } cout << sum << endl; }
点赞 回复 分享
发布于 2020-04-18 18:49
顺手就排了一下,哈哈
点赞 回复 分享
发布于 2020-04-18 20:38
n*n爆int了
点赞 回复 分享
发布于 2020-04-18 22:36
把 n 的数据类型改为 long long 就可以了。
点赞 回复 分享
发布于 2020-04-23 22:25

相关推荐

2024-12-26 13:00
太原理工大学 Java
会飞的猿:简历没啥大问题啊,感觉是缺少了实习经历。多投投先找个中小厂过渡一下吧
点赞 评论 收藏
分享
Cassifa:发的字比你都多的一律视为骗子或者想白嫖压榨实习生的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务