Color the ball HDU - 1556 _差分
阿新 • • 發佈:2022-12-05
N名同學拍成一排,編號為1,2,3,4 …… N。現在有一位老師需要檢查所有同學的出勤情況,他會進行點名,每次給出兩個數a,b,並且保證a小於等於b,這個區間內的所有同學都會被點名一次,老師會進行N次點名,請問點名結束後,每位同學被點名的總次數是多少
Input
每個測試例項第一行為一個整數N,(N <= 100000).
接下來的N行,每行包括2個整數a b(1 <= a <= b <= N)。
當N = 0,輸入結束。
Output
每個測試例項輸出一行,包括N個整數,第I個數代表第I個氣球總共被塗色的次數。
Input Sample
3 1 1 2 2 3 3 3 1 1 1 2 1 3 0
Output Sample
1 1 1
3 2 1
分析
#include<bits/stdc++.h> using namespace std; const int N=1e6+10,INF=0x3f3f3f3f; int n,m,a,b,d[N]; int main(){ while(cin>>n && n){ memset(d,0,sizeof(d)); m=n; while (m--){ cin>>a>>b; d[a] ++; d[b+1] --; } for(int i=1; i<=n; i++) d[i]+=d[i-1]; for(int i=1; i<=n; i++) cout<<d[i]<<" \n"[i==n]; } }