Educational Codeforces Round 120

A

判断能否拼矩形

void slv(){
	
	cin>>a[1]>>a[2]>>a[3];
	m=0;
	sort(a+1,a+4);
	n = a[3]-a[2];
	if(a[1]==a[2]&&(a[3]%2==0)) m= 1;
	if(a[3]==a[2]&&(a[1]%2==0)) m= 1;
	//cout<<m;
	if(n==a[1]||m) puts("YES");
	else puts("NO");
	
}

B

设s里有m个0,前m是0,后n-m是1,分别按原序列排序

void slv(){
	cin>>n;
	string s;
	b.clear();c.clear();
	
	rep(i,0,n) cin>>p[i];
	
	cin>>s;
	
	rep(i,0,n) 
	if(s[i]-'0') b.pb({p[i],i});
	else c.pb({p[i],i});
	
	sort(all(b));
	sort(all(c));
	m = c.size();
	rep(i,0,n)
	{
		if(i<m)
		{
			a[c[i].se] = i+1; 
		}
		else a[b[i-m].se] = i+1;
	}
	
	rep(i,0,n) cout<<a[i]<<' ';
	cout<<"\n";
}

待补

posted @ 2021-12-28 09:31  InsiApple  阅读(26)  评论(0编辑  收藏  举报