题解 | #涂颜料#(C++)
涂颜料
https://www.nowcoder.com/practice/4ef038ae1c5f4524b8a8a0c1e6b062a1
解题方法:差分数组。需要注意对未涂色的判断(0表示未涂色)
#include <iostream>
using namespace std;
const int MAXN = 1e6+10;
int n;
int a[MAXN];
int main() {
scanf("%d",&n);
int q;
scanf("%d",&q);
while(q--){
int l,r;
scanf("%d%d",&l,&r);
a[l]++; //差分数组,a的前缀和表示多次区间修改后的值
a[r+1]--;
}
for(int i=1;i<=n;++i){
a[i] += a[i-1];
if(a[i]==0)cout<<"O";
else if(a[i]%3==0)cout<<"B";
else if(a[i]%3==1)cout<<"R";
else cout<<"G";
}
cout<<endl;
}
// 64 位输出请用 printf("%lld")

