64 找数游戏
2023-12-24 21:46:40
动态规划
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <numeric>
using namespace::std;
using std::cout;
using std::cin;
int zsyx(vector<int>& nums)
{
vector<int> v[3];
for (int num: nums)
{
v[num % 3].push_back(num);
}
sort(v[1].begin(), v[1].end(), greater<int>());
sort(v[2].begin(), v[2].end(), greater<int>());
int ans = 0;
int lb = v[1].size(), lc = v[2].size();
for (int cntb = lb - 2; cntb <= lb; ++cntb)
{
if (cntb >= 0)
{
for (int cntc = lc - 2; cntc <= lc; ++cntc)
{
if (cntc >= 0 && (cntb - cntc) % 3 == 0)
{
ans = max(ans, accumulate(v[1].begin(), v[1].begin() + cntb, 0) + accumulate(v[2].begin(), v[2].begin() + cntc, 0));
}
}
}
}
return ans + accumulate(v[0].begin(), v[0].end(), 0);
}
int main()
{
string s;
cin >> s;
int start=0;
int num=0;
vector<int> nums;
for (int i=0; i<s.size(); i++)
{
if (s[i] == ',')
{
string temp = s.substr(start, i-start);
nums.push_back(atoi(temp.c_str()));
num++;
start = i+1;
}
}
string temp = s.substr(start, s.size()-start+1);
nums.push_back(atoi(temp.c_str()));
std::cout << zsyx(nums);
return 0;
}
文章来源:https://blog.csdn.net/qq_64654845/article/details/135186998
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!