关注
下面是我的代码,这样可以吗? #include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; using std::vector; int _tmain(int argc, _TCHAR* argv[]) { vector<string> m; char* temp=new char; int i=0; while(gets(temp)) { m.push_back(temp); i++; } vector<vector<int> > num; for(vector<string>::iterator iter=m.begin();iter!=m.end();iter++) { string str=*iter; vector<int>temp; int p1=0;int p2=0; while(p2!=string::npos) { p2=str.find(" ",p1+1); string sub=str.substr(p1,p2-p1); temp.push_back(atoi(sub.c_str())); p1=p2+1; } num.push_back(temp); } if(num.size()<=1 || num[0].size()!=3 ) return 0; if(num[0][0]<num[0][1]) return 0; int n=num[0][0]; int s=num[0][1]; int c=num[0][2]; vector<int> a; for(int i=0;i<n;i++) { a.push_back(num[1][i]); } for (int j=1; j<n; j++) { int key = a[j]; int i = j-1; while (i>=0 && a[i]>key) { a[i+1] = a[i]; i--; } a[i+1] = key; } //sort(a.begin(),a.end()); //reverse(a.begin(),a.end()); vector<int>::iterator iter1=a.end();--iter1; int sum=*iter1; vector<int>::iterator iter2=(iter1-1); for(int i=0;i<s-1;i++) { while((*iter1-*iter2)<c) { --iter2; } sum+=*iter2; iter1=iter2; --iter2; } cout<<sum<<endl; system("pause"); return 0; }
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看28道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
25841次浏览 324人参与
# 工作前VS工作后,你的心态变化 #
38589次浏览 267人参与
# 秋招想进国企该如何准备 #
125519次浏览 617人参与
# 你的mentor是什么样的人? #
51665次浏览 741人参与
# 从mentor身上学到了__ #
55691次浏览 886人参与
# 我和mentor的爱恨情仇 #
106763次浏览 969人参与
# 我的省钱小妙招 #
37637次浏览 446人参与
# 机械人避雷的岗位/公司 #
44973次浏览 320人参与
# 在大厂上班是一种什么样的体验 #
15501次浏览 225人参与
# 为了减少AI幻觉,你注入过哪些设定? #
7877次浏览 217人参与
# 职场上哪些行为很加分? #
323273次浏览 3619人参与
# 通信/硬件求职避坑tips #
140049次浏览 1087人参与
# 论秋招对个人心气的改变 #
16468次浏览 251人参与
# 你觉得mentor喜欢什么样的实习生 #
48806次浏览 1002人参与
# 你现在会用到哪些AI技能? #
24874次浏览 137人参与
# 牛客AI体验站 #
9598次浏览 230人参与
# 毕业论文进行时 #
27748次浏览 153人参与
# 运营来爆料 #
77503次浏览 467人参与
# 程序员找工作至少要刷多少题? #
24668次浏览 316人参与
# 过年最难忘的一件事 #
23375次浏览 179人参与
