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

相关推荐

不困不吃饭:个人作品放链接里边。另外字太多了,无法删减的话可以用加粗注明关键的地方(不要全加粗了,只标记关键点)。个人能力往下边放,学历放最上边,如果说你觉得学校不好怕被刷掉的话,那就把实习经历放上边。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务