今天我們來看看CF1417B
題目連結linux
題目
略,請直接看原題。ios
a
spa
注意到,若是\(T\)是奇數,那麼由於奇數一定是偶\(+\)奇(在兩個正數相加時),所以若是\(T\)是奇數,就分紅兩個奇數和偶數各一個陣列便可。
若是\(T\)是偶數,那麼我們能夠把\(<\frac{T}{2}\),\(>\frac{T}{2}\),\(=\frac{T}{2}\)的數字分開來看待。前兩類分兩類,而最後一類只要平均分散在兩個陣列中就行了。code
const int _n=1e5+10; int t,n,T,a[_n]; main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>t;while(t--){ cin>>n>>T;rep(i,0,n)cin>>a[i]; if(T%2==1){ rep(i,0,n){ if(a[i]%2==0)cout<<"0 "; else cout<<"1 "; }cout<<'\n'; }else{ bool z=0; rep(i,0,n){ if(a[i]<T/2)cout<<"0 "; else if(a[i]==T/2){cout<<z<<' '; z=!z;} else if(a[i]>T/2)cout<<"1 "; }cout<<'\n'; } } return 0; }
標頭、模板請點Submission看
Submissionblog