http://www.spoj.com/problems/MAX_NUM
i'm getting WA at 3rd judge state
#include <cstdio>
int main() {
int t,K;
char ch;
int A[100001];
int n,i,j,J,z;
scanf("%d",&t);
while(t--)
{
while(ch<47) ch = getchar_unlocked();
i=0;
while(ch>47)
{
A[i] = ch-48;
++i;
ch = getchar_unlocked();
}
scanf("%d",&K);
j=0;
J=1;
if(i==K) { printf("\n"); continue; }
n=0;
while(J!=i && n!=K)
{
while(A[j]<A[J])
{
if(A[j]!=-1) { A[j]=-1; ++n; }
if(j==0 || n==K) break;
--j;
}
j=J;
++J;
}
if(n!=K)
{
--J;
--j;
while(n!=K) { if(A[J]<=A[j]) { A[J]=-1; ++n;} --j; --J; }
}
z=0;
while(z<i) { if(A[z]!=-1) printf("%d",A[z]); ++z; }
printf("\n");
}
return 0;
}
help !