cf C. Xenia and Weights

时间:2023-03-09 21:21:45
cf C. Xenia and Weights

http://codeforces.com/contest/339/problem/C

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; int dp[][][];
char str[];
int f[];
int m;
void dfs(int i,int j,int k)
{
if(i==) return ;
dfs(i-,k-j,dp[i][j][k]);
printf("%d ",k);
} int main()
{
scanf("%s",str);
int cnt=;
for(int i=; i<; i++)
{
if(str[i]=='')
{
f[++cnt]=i+;
}
}
scanf("%d",&m);
memset(dp,-,sizeof(dp));
dp[][][]=;
for(int i=; i<=m; i++)
{
for(int j=; j<=; j++)
{
for(int k=; k<=; k++)
{
if(dp[i-][j][k]!=-)
{
for(int c=; c<=cnt; c++)
{
if(f[c]>j&&f[c]!=k)
dp[i][f[c]-j][f[c]]=k;
}
}
}
}
}
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
if(dp[m][i][j]!=-)
{
printf("YES\n");
dfs(m,i,j);
return ;
}
}
}
printf("NO\n");
return ;
}