Passphrase Obfuscation (aiuto non funzionano le taskt)

#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;
int main()
{
int N,K,i,j,r;
string frase;

cin>>i;
cin>>K;


cin>>frase;

N=frase.length();

	


	
//INIZIALI
for(i=0,j=0;i<N;i++)
{
if(frase[i]<frase[i+1+j] and K!=0 )
{frase[i]=0;K--; }
else
{if(frase[i]==frase[i+1])
j++;
else break;

}

}
	r=0;
		for(i=0;i<N;i++)
{
if(frase[i]==0)
r++;
}

	for(i=0;i<N-r;i++)
{
frase[i]=frase[i+r];

}
for(i=N-r;i<N;i++)
{
frase[i]=0;

}
//INIZIALI
r=0;
if(K==0)
{cout<<frase;return 0;}
N=N-r;
j=0;

	for(i=1;i<N;i++)
{
	
	for(r=0;r<N-i;)
	{
	
if(frase[i]==frase[i+r+1] and frase[i]!=0)
r++;
else break;
}
	for(j=1;j<N-i;)
{
	if(frase[i+j]==0)
	j++;
	else break;
}

if(frase[i]<frase[i+j+r] and K!=0 and frase[i]!=0)
{frase[i]=0;K--;i=1; }

}



for(i=0;i<N;i++)
{
if(frase[i]!=0)
cout<<frase[i];
}
	
	
	
	
	
	
	
	}

Ciao, prova a spiegare brevemente cosa fa il tuo programma