巨香蕉牛奶猪皮怪的坑人,刚开始想错了,我先建了一个结构体储存每个字母的价值和数量,然后全部情况列出来进行计算,就是一次挪动一个字符看总之的变化,但是我原来错在了每次挪动的是全部相同的那一个字符,后来只好把字符存在了另一个数组,想想都愚

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<sstream>
#include<set>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<ctime>
#include<fstream>
#include<iomanip>
#include<map>
using namespace std;
/*struct myclass{
string name;
int value; };*/
struct mynote
{
int val;
int num;
};
int cmp(mynote a,mynote b)
{
return a.val<b.val;
}
int value[*+];
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
mynote note[];
int total_num=;
for(int i=;i<n;i++)
{
cin>>note[i].val>>note[i].num;
total_num+=note[i].num;
}
int coun=;
sort(note,note+n,cmp);
for(int i=;i<n;i++)
{
for(int j=;j<note[i].num;j++)
{
value[coun++]=note[i].val;
}
}
long long total=;
for(int q=;q<total_num;q++)
{
int temp=;
long long sum=;
for(int i=q;i<total_num;i++)
{ sum+=temp*value[i];
temp++; }
if(sum>total)
{
total=sum;
}
}
cout<<total<<endl;
}
return ;
}
04-23 08:22