没理解很好的题目|AtCoder Beginner Contest 221 D(思维
D - Online games
题解
【没理解很好的题目|AtCoder Beginner Contest 221 D(思维】code:
#include
#define ll long long
using namespace std;
const int maxn = 2e5 + 9;
int ans[maxn];
void work()
{ int n;
cin >> n;
int a, b;
vector> v;
int cnt = 0;
for(int i = 1;
i <= n;
++i)
{cin >> a >> b;
v.push_back({
a, 1});
v.push_back({
a + b, -1});
}
sort(v.begin(), v.end());
/*cout << endl;
for(int i = 0;
i < v.size();
++i)
cout << v[i].first << " " << v[i].second << endl;
*/
for(int i = 0;
i < v.size() - 1;
++i)
{cnt += v[i].second;
ans[cnt] += (v[i + 1].first - v[i].first);
}
for(int i = 1;
i <= n;
++i)
cout << ans[i] << " ";
}int main()
{ ios::sync_with_stdio(0);
work();
return 0;
}
/*
1 2
2 3 4
3
*/
推荐阅读
- 爱就是希望你好好活着
- 昨夜小楼听风
- 死结。
- 我从来不做坏事
- 深入理解Go之generate
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 学无止境,人生还很长
- 由浅入深理解AOP
- 红糖补血()
- 科学养胃,别被忽悠,其实真的很简单