错了,悲哀~样例过了,就是分数……
查看原帖
错了,悲哀~样例过了,就是分数……
703319
Sylvia_starx楼主2023/1/18 14:46

全WA,求助!!!

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n,a[N],ans,tot,cnt,bnt,gnt,b[N],g[N];
char c[N];
priority_queue<int> pq;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>c[i];
		if(c[i] == 'B')
			bnt++;
		else 
			gnt++;
	}
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		if(c[i] == 'B' && c[i+1] != 'G')
			continue;
		else if(c[i] == 'G' && c[i+1] != 'B')
			continue;
		else if(c[i] == 'B' && c[i+1] == 'G')
		{
			pq.push(-(abs(a[i]-a[i+1])));
			b[abs(a[i]-a[i+1])] = i;
			g[abs(a[i]-a[i+1])] = i+1;
			a[i+1] = a[i-1];
			c[i+1] = c[i-1]; 
		}
		else if(c[i] == 'G' && c[i+1] == 'B')
		{
			pq.push(-(abs(a[i]-a[i+1])));
			g[abs(a[i]-a[i+1])] = i;
			b[abs(a[i]-a[i+1])] = i+1;
			a[i+1] = a[i-1];
			c[i+1] = c[i-1]; 
		}
	}
	cout<<pq.size()<<endl; 
	while(!pq.empty())
	{
		int x = -pq.top();
		pq.pop();
		cout<<b[x]<<" "<<g[x]<<endl;
	}
	return 0;
}
2023/1/18 14:46
加载中...