#include
#include<string.h>
using namespace std;
int main()
{
int i,test,length; int count =0;
char a[100];
cin>>test;
while(test--)
{
cin>>a;
length=strlen(a);
for(i=0;i<length;i++)
{
if(a[i]=='A'||a[i]=='D'||a[i]=='O'||a[i]=='P'||a[i]=='Q'||a[i]=='R')
{
++count;
}
if (a[i]== 'B')
{
count= count + 2;
}
}
}
cout<<count ;
}
You didn’t test your code properly, it’s giving wrong answer for input from problem statement - http://ideone.com/JeA4jE
1 Like
And it is obvious, isn’t it? You have failed to initialize your count
(each time, per test case).
@navkiran mahajan you are doing two things wrong.
-
count value not resetting to zero for each test case.
-
and you are printing count only one time.
You have to print count value for each test case and reset as well. Here, is the correct
[1].
[1]: http://ideone.com/hFFcgm
1 Like
And for completeness, adding a return 0;
will be great as well.
2 Likes
thanks shobhagya
One more query for sake of completeness
Shall i convert the user input to Uppercase or would it suffice ?
@navkiran mahajan no need to do that. Since, it is already given that input is in upper case.
@shobagya sry to bug you. However i need help again . Would you mind checking what is wrong. I have checked sample input. It works fine albeit getting wrong answer over here ?
#include <iostream>
#include "stdio.h"
using namespace std ;
int main()
{ int test,x,y,z,w,lead,max=0;
cin>>test;
if (test>10000)
exit(1);
while(test--)
{
int sc1=0 ,sc2=0 ;
cin>> x >> y ;
if ((x<0)||(x>1000)|| (y<0)||(y>1000))
return(0);
sc1+=x; sc2+=y;
if(sc1>sc2)
{
w=1;lead=sc1-sc2;
}
else
if ( sc2>sc1)
{
w=2; lead=sc2-sc1;
}
else
continue;
if(lead>max)
{
max=lead;
z=w;
}
}
cout<<z<<" "<<max;
return (0);
}
But this is different problem, isn’t it? It’s not holes… Create new thread and describe your approach briefly additionally to your code…
2 Likes
agree with @betlista ask it in a new thread with insights.