代码打印
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 条回复
我问下他们有没有打
1
打了,马上送过来