Codeforces Round #501 (Div. 3) A Points in Segments
阿新 • • 發佈:2018-08-16
segments ble round show 默認 () for using pre
翻譯
現在有一個數軸,上面會有\(M\)個點,標號為\(1\)到\(N\),現在給你在數軸上的條\(N\)線段的起始與終止的點,問哪幾個點沒有被這樣線段覆蓋,從小到大輸出。
思路
簽到題目。感覺幾乎和一道題一樣:校門外的樹,撞題是很尷尬。思路差不多,即為開一個數組,全部賦值為\(0\),輸入的線段的時候,將其起點與終點的全部的點賦值為\(1\),最後跑一下看看那些為\(0\)的點就完事了。
Code
#include<iostream> using namespace std; int book[1001];//默認為0 int main() { int n,k,t=0; cin>>n>>k; for(int i=1;i<=n;i++) { int a,b; cin>>a>>b; for(int j=a;j<=b;j++)//標記線段的區間 book[j]=1; } for(int i=1;i<=k;i++) if(book[i]==0)//0即為沒有覆蓋 t++; cout<<t<<endl; for(int i=1;i<=k;i++) if(book[i]==0) cout<<i<<" "; return 0; }
Codeforces Round #501 (Div. 3) A Points in Segments