看别人写的代码发现自己想复杂了,没必要保存输入数据,直接累乘相加,需要用到的内存就会更少,运行时间也短。记录反面教材…
#include<iostream>
#include<map>
using namespace std;
//const int h 100000;
//6 2 60 10 100 0 70 0 0 -10 50 10 60 = 1220
//120 1000 0 0 -500 10 60
int main()
{
multimap<int,int> s;//用multimap记录每一对的值,因为w的值可能会重复
int n,w,score;
cin>>n;
for(int i=0;i<n;++i)
{
cin>>w>>score;
s.insert(pair<int,int>(w,score));
}
multimap<int,int>::iterator it;
int num=0;
for(it = s.begin();it!=s.end();++it)
{
num += it->first*it->second;
//cout<<num<<endl;
}
if(num>=0)
cout<<num<<endl;
else
cout<<'0'<<endl;
}