代码打印

2025-cpc-17 2025-05-18 13:33:54

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ANS,top=0;
int b[1000],a[1000],x[1000],y[1000],z[1000];
inline void del(int pos)
{
	int ans;
	int maxn=0;
	for(int i=1;i<=top;i++)
	{
		int temp=b[i];
		bool flag=0;
		for(int j=pos;j<=n;j++)
		{
			if(flag) continue;
			if(a[j]==temp)
			{
				int length=j-pos+1;
				if(length>maxn) maxn=length,ans=i;
				flag=1;
			}
		}
	}
	int temp=a[pos];
		bool flag=0;
		for(int j=pos;j<=n;j++)
		{
			if(a[j]==temp)
			{
				int length=j-pos+1;
				if(length>maxn) 
				{
					return;
				}
			}
		}
	cout<<ans<<"}";
	//if(ans=top+1) top++;
	b[ans]=a[pos];
	//ANS-=y[pos],-=z[pos]
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		cin>>n>>m;
		ANS=0;
		top=0;
		memset(b,0,sizeof(b));
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
		}
		for(int i=1;i<=n;i++)
		{
			cin>>x[i];
		}
		for(int i=1;i<=n;i++)
		{
			cin>>y[i];
		}
		for(int i=1;i<=n;i++)
		{
			cin>>z[i];
		}
		
		for(int i=1;i<=n;i++)
		{
			bool flag=0;
			for(int j=1;j<=top;j++)
			{
				if(b[j]==a[i]) 
				{
					flag=1;
					ANS+=x[i];
					break;
				}
			}
			if(!flag&&top<m) 
			{
				b[++top]=a[i];
			}
			else if(!flag&&top>=m) 
			{
				cout<<"P";del(i);
			}
		}
		cout<<ANS<<endl;
	}
	return 0;
}
/*
0
5 2
1 2 2 2 1
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
3
6 2
1 2 3 4 5 1
1 1 1 1 1 1
0 0 0 0 0 0
0 0 0 0 0 0
P1}PPP0
10 3
1 2 3 2 1 4 1 2 4 3
1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
P3}P5
10 5
1 6 1 5 5 9 7 7 8 8
1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
PP3
10 2
3 7 1 6 3 10 4 3 1 2
1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
PP1}PPPPPP0
10 1
1 2 1 2 1 2 1 2 1 1
1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
PPPP1}PP3
*/

共 3 条回复

dd

我问下他们有没有打

2025-cpc-root

1

dd

打了,马上送过来