C++ Color the ball
📋 个人简介
💖大家好,我是2022年3月份新人榜排名第三的 ༺Blog༒Hacker༻
🎉支持我:点赞👍+收藏⭐️+留言📝
💬格言:༺永做优质༒programmer༻
📣 系列专栏:CF & UVA🍁
📝 个人主页:༺Blog༒Hacker༻❄️
Problem Description
题目来源
N 个气球排成一排,从左到右依次编号为
1
,
2
,
3....
N
1,2,3....N
1,2,3....N,每次给定 2 个整数
a
,
b
(
a
<
=
b
)
a,b(a <= b)
a,b(a<=b),
P
i
g
Pig
Pig 便为骑上他的“小飞鸽"牌电动车从气球
a
a
a 开始到气球
b
b
b 依次给每个气球涂一次颜色。但是
N
N
N 次以后
P
i
g
Pig
Pig 已经忘记了第
I
I
I 个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?
【Input】
每个测试实例第一行为一个整数
N
(
N
<
=
105
)
N (N <= 105)
N(N<=105).接下来的
N
N
N 行,每行包括
2
2
2 个整数
a
,
b
(
1
≤
a
≤
b
≤
N
)
a,b(1≤a≤b≤N)
a,b(1≤a≤b≤N)
→
→
→
→
→
→→→→→
→→→→→ 当
N
=
0
N=0
N=0,输入结束。
温馨提示: 保证每个数据组数不超过
10
10
10 组,共十个样例,不具有梯度。请谨慎使用
n
2
n^2
n2算法。
【Output】
每个测试实例输出一行,包括
N
N
N 个整数,第
I
I
I 个数代表第
I
I
I 个气球总共被涂色的次数。
【Sample Input】
3
1 1
2 2
3 3
3
1 1
1 2
1 3
0
【Sample Output】
1 1 1
3 2 1
💯CODE
#include<bits/stdc++.h>
#define ll long long
const int MAXN=1e5+5;
using namespace std;
int k[MAXN],s[MAXN];
signed main()
{
int a,b,n;
while(1)
{
memset(k,0,sizeof(k));memset(s,0,sizeof(s));
scanf("%d",&n);
if(n==0) break;
for(int i=1;i<=n;++i)
{
scanf("%d%d",&a,&b);
k[a]=k[a]+1;
k[b+1]=k[b+1]-1;
}
s[0]=0;
for(int i=1;i<=n;++i)
s[i]=s[i-1]+k[i];
for(int i=1;i<=n;++i)
printf("%d ",s[i]);
printf("\n");
}
return 0;
}