i am solving problem CHEFGP ( https://www.codechef.com/problems/CHEFGP ).....and the outputs are coming correct....bt outputs are cominng only for (t/2) cases instesd of t cases.....and the notable thing is that there are two new lines between consecutive outputs.....so is there any mistake in using gets() and getchar()......or i am missing somewhere else,,,,,some1 pllz look at it....here my code goes.....
#include<stdio.h>
#include<string.h>
int main()
{
long int t;
scanf("%ld",&t);
getchar();
while(t--)
{
char a[100010];
gets (a);
long int x,y;
scanf("%ld %ld",&x,&y);
long int tota=0,totb=0,acount=0,bcount=0,j=0,i;
while (a[j]!='\0')
{
if(a[j]=='a')
{
tota++;
}
if(a[j]=='b')
{
totb++;
}
j++;
}for(i=0;a[i]!='\0';i++)
{
if(a[i]=='a')
{
if((acount<x)&&(tota>0))
{
printf("a");
acount++;
tota--;
bcount=0;
}
else if((bcount<y)&&(totb>0))
{
printf("b");
bcount++;
totb--;
acount=0;
}
else
{
printf("*");
if(tota>=totb)
{
printf("a");
tota--;
acount=1;
bcount=0;
}
if(tota<totb)
{
printf("b");
totb--;
bcount=1;
acount=0;
}
}
}
else
{
if((bcount<y)&&(totb>0))
{
printf("b");
bcount++;
totb--;
acount=0;
}
else if((acount<x)&&(tota>0))
{
printf("a");
acount++;
tota--;
bcount=0;
}
else
{
printf("*");
if(tota>=totb)
{
printf("a");
tota--;
acount=1;
bcount=0;
}
if(tota<totb)
{
printf("b");
totb--;
bcount=1;
acount=0;
}
}
}
}
printf("\n");
}
return 0;
}Asked by: Abhishek_Chaudhary on April 7, 2019, 6:34 p.m. Last updated on April 7, 2019, 6:34 p.m.