题解 | #涂颜料#
涂颜料
https://www.nowcoder.com/practice/4ef038ae1c5f4524b8a8a0c1e6b062a1
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, q;
cin >> n >> q;
vector<int> paint(n, 0);
vector<pair<int , int>> lr;
while (q--) { // 注意 while 处理多个 case
pair<int , int> tmp;
cin >> tmp.first >> tmp.second;
tmp.first--;
tmp.second--;
lr.emplace_back(tmp);
}
for (int i = 0; i < lr.size(); i++){
paint[lr[i].first]++;
if (lr[i].second+1 != paint.size()) paint[lr[i].second+1]--;
}
int sum = 0;
for (int i = 0; i < paint.size(); i++) {
sum += paint[i];
if (sum == 0){
cout << 'O';
} else if ((sum - 1) % 3 == 0) cout<<'R';
else if ((sum - 1) % 3 == 1) cout << 'G';
else if ((sum - 1) % 3 == 2) cout << 'B';
}
}
// 64 位输出请用 printf("%lld")
储存端点数据最后遍历整个数组,通过端点和判断颜色

