下面是我的代码,这样可以吗? #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; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务