201509——hulu笔试题目——rainfall

来源:互联网 发布:linux 切换root用户 编辑:程序博客网 时间:2024/06/16 23:31
#include <iostream>
#include <vector>
#include <algorithm>


using namespace std;


int main(void)
{
int n, m, l, r, w;
cin>>n;
vector<int> rooms(n, 0), rains(n, 0);
for(int i=0;i<n;i++)
cin>>rooms[i];
cin>>m;
vector<int>::iterator lb, ub;
for(int j=0;j<m;j++)
{
cin>>l>>r>>w;
lb=lower_bound(rooms.begin(),rooms.end(),l);
ub=upper_bound(rooms.begin(),rooms.end(),r);
while(lb!=ub)
rains[distance(rooms.begin(),lb++)] += w;
}
vector<int>::const_iterator itr=rains.begin();
while(itr!=rains.end())
cout<<*itr++<<endl;
return 0;

}

总结:

利用STL的二分查找来提高速度

0 0