10945 - Mother bear

All about problems in Volume 109. If there is a thread about your problem, please use it. If not, create one with its number in the subject.

Moderator: Board moderators

aur
New poster
Posts: 1
Joined: Fri Aug 12, 2011 4:00 pm

Re: 10945 - Mother Bear

Post by aur » Fri Aug 12, 2011 4:02 pm

I have been getting a weird WA

here's my code :

Code: Select all

#include <iostream>
#include <cstdlib>
#include <vector>
#include <string>

using namespace std;

int main()
{

    string s;
   while(getline(cin,s)){
      if(s=="DONE")
        break;
    for(int i=0;i<s.length();i++)
      if(s[i] == ' ' || s[i]== '.' || s[i]==',' || s[i]=='!' || s[i]=='?')
        s.erase(i,1);
    
    for(int i=0;i<s.length();i++)
      if(s[i] == ' ')
        s.erase(i,1);
    
    string::reverse_iterator rit;
    int i=0,counter=0;
  for ( rit=s.rbegin() ; rit < s.rend(); rit++,i++ ){
         if(*rit == s[i] || *rit+32==s[i] || *rit-32==s[i])
           counter++;
           }

  if(counter==s.length())
    cout<<"You won't be eaten!"<<endl;
  else cout<<"Uh oh.."<<endl;
    
}  
    
 return 0;
}

Seldaski
New poster
Posts: 2
Joined: Fri Aug 05, 2011 9:35 pm

Re: 10945 - Mother Bear

Post by Seldaski » Fri Aug 12, 2011 6:09 pm

I don't know why I got WA, plz Help Me...I am new in UVa Online Judge :-?

Here is My Code,

#include<iostream>
#include<cmath>;
#include<vector>
using namespace std;
int main()
{
string S;
int Characters=0,Punc=0;
int X,i,M=0;
vector<string>Strs;

while(getline(cin,S)&&S!="DONE")
{
Strs.push_back(S);
}
while(M<Strs.size())
{
Characters=0; Punc=0;
S=Strs[M];
X=S.size()-1;
for(i=0;i<=ceil((double)S.size()/2);i++)
{
if(S.size()%2==0 && i==ceil((double)S.size()/2)&&Punc==0) break;
if(X == ceil((double)S.size()/2)-1&& i==ceil((double)S.size()/2)-1)
{Punc++;break;}

if(S == '.'||S == ','||S == '?'||S == '!'||S == ' ')
{
Punc++;
continue;}

if(S[X] == '.'||S[X] == ','||S[X] == '?'||S[X] == '!'||S[X] == ' ')
{
i=i-1;
X--;
Punc++;
continue;
}
if(S == toupper(S[X]) || S == tolower(S[X]))
Characters++;
X--;
}

if(Characters*2+Punc == S.size())
{cout<<"You won't be eaten!"; if(M!=Strs.size()-1) cout<<endl;}
else{ cout<<"Uh oh.."; if(M!=Strs.size()-1) cout<<endl;}
M++;
}
// system("pause");
return 0;
}

Thanks,

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

10945 - Mother Bear WA why? Anyone help me please

Post by uvasarker » Wed Dec 28, 2011 6:32 pm

Actually, I have seen the previous posted topic of this problem and try almost all of the given test cases and my program gives the right. But, in judge verdict give me WA.
Why? Please, help me please. Here is my code.

Code: Select all

#include<cstdio>
#include<sstream>
#include<cctype>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<iterator>
using namespace std;

int main()
{
	char in[1000000];
	while(gets(in))
	{
		if(in[0]!='\0')
		{
			if( (in[0]=='D' && in[1]=='O' && in[2]=='N' && in[3]=='E' && in[4]=='\0')) break;
			char store[1000000],rev[1000000];
			unsigned long I=0, len=strlen(in);
			int p=0, fag=0;
			for(unsigned long i=0 ; i<=len ; i++)
			{
					if(isalpha(in[i]))
					{
							store[I]=tolower(in[i]);
							I++;
					}
			}
			for(unsigned long i=0 ; i<I ; i++)
			{
					rev[i]=store[I-1-i];
			}			
			
			for(unsigned long i=0 ; i<I ; i++)
			{
				fag=1;
					if(store[i]!=rev[i])
					{
						p=1;
						break;
					}
			}
			if(fag==1)
			{
				if(p==0)
					cout<<"You won't be eaten!"<<endl;
				else
					cout<<"Uh oh.."<<endl;
		
				p=0; fag=0;
				for(unsigned long i=0 ; i<I ; i++)
				{
						store[i]=rev[i]='\0';
				}
			}
		}
		else if(in[0]=='\0') cout<<"You won't be eaten!"<<endl;
	}
	
	return 0;
}


brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by brianfry713 » Fri Jan 13, 2012 1:38 am

My AC code prints "You won't be eaten!" for a line containing only a space. Yours prints nothing.
Check input and AC output for thousands of problems on uDebug!

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by uvasarker » Fri Jan 13, 2012 4:34 pm

Still WA please give more test cases....

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by uvasarker » Sun Jan 15, 2012 5:07 pm

Hi, guys what is it you post?

brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by brianfry713 » Thu Jan 19, 2012 2:56 am

Post your updated code.
Check input and AC output for thousands of problems on uDebug!

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by uvasarker » Thu Jan 19, 2012 7:26 pm

Here, is my updated code:

Code: Select all

#include<cstdio>
#include<sstream>
#include<cctype>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<iterator>
using namespace std;

int main()
{
	char in[1000000];
	while(gets(in))
	{
		if(in[0]!='\0' && in[0]!=' ')
		{
			if( (in[0]=='D' && in[1]=='O' && in[2]=='N' && in[3]=='E' && in[4]=='\0')) break;
			char store[1000000],rev[1000000];
			unsigned long I=0, len=strlen(in);
			int p=0, fag=0;
			for(unsigned long i=0 ; i<=len ; i++)
			{
					if(isalpha(in[i]))
					{
							store[I]=tolower(in[i]);
							I++;
					}
			}
			for(unsigned long i=0 ; i<I ; i++)
			{
					rev[i]=store[I-1-i];
			}			
			
			for(unsigned long i=0 ; i<I ; i++)
			{
				fag=1;
					if(store[i]!=rev[i])
					{
						p=1;
						break;
					}
			}
			if(fag==1)
			{
				if(p==0)
					cout<<"You won't be eaten!"<<endl;
				else
					cout<<"Uh oh.."<<endl;
		
				p=0; fag=0;
				for(unsigned long i=0 ; i<I ; i++)
				{
						store[i]=rev[i]='\0';
				}
			}
		}
		else if(in[0]=='\0' || in[0]==' ') cout<<"You won't be eaten!"<<endl;
	}
	
	return 0;
}


brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by brianfry713 » Wed Jan 25, 2012 2:26 am

Try the input _a_b_c with the underscores as spaces.
It should print Uh oh..
Check input and AC output for thousands of problems on uDebug!

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by uvasarker » Wed Jan 25, 2012 3:17 pm

Hi, brother
Thank you, Thank you, Thank you
Thank you very much
Thanks a lot...

sumit saha shawon
New poster
Posts: 19
Joined: Tue Jun 26, 2012 9:19 pm

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by sumit saha shawon » Tue Jul 17, 2012 7:50 pm

what is my problem?All of my input and output is ok.But I am getting WA. :x
my code is:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[3000],str1[3000],str2[30000];
while(gets(str))
{
int i,j,k,len;
if(strcmp(str,"DONE")==0)
break;
len=strlen(str);
for(i=0; i<len; i++)
str=toupper(str);
k=0;
for(i=0;i<len; i++)
if(str>='A' && str<='Z')
str2[k++]=str;
i=0;
for(j=k-1; j>=0; j--)
str1[i++]=str2[j];
// puts(str1);
//puts(str2);
if(strcmp(str1,str2)==0)
printf("You won't be eaten!\n");
else
printf("Uh oh..\n");
}
return 0;
}

brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by brianfry713 » Wed Jul 18, 2012 2:18 am

Null terminate the strings before you run strcmp()
Check input and AC output for thousands of problems on uDebug!

sumit saha shawon
New poster
Posts: 19
Joined: Tue Jun 26, 2012 9:19 pm

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by sumit saha shawon » Fri Jul 20, 2012 3:00 pm

thanks I have got AC :)

Kashmir
New poster
Posts: 1
Joined: Sun Oct 07, 2012 2:51 am

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by Kashmir » Sun Oct 07, 2012 2:59 am

Hello everyone!
Well, I've got a problem with this. I keep getting WA, and I can't find what's wrong. :(
Can anybody help me?
This is my code:

Thanks. :D

Code: Select all

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define REG 10
#define LEN 10
#define ES_PALINDROMO "You won't be eaten!"
#define NO_ES_PALINDROMO "Uh oh.."
#define ENTRADA_INVALIDA "Error"

int caracterValido( char ** s , int i );

void main()
{
    char string[REG][LEN], * fin, * s;
    int i = 0, j;

    fflush( stdin );

    if( !gets( string[i] ) )
    {
        puts( ENTRADA_INVALIDA );
        exit(1);
    }

    while( strcmp( string[i] , "DONE") != 0 && i < REG-1 && strlen( string[i] ) < LEN )
    {
        fflush( stdin );

        i++;

        if( !gets( string[i] ) )
        {
        puts( ENTRADA_INVALIDA );
        break;
        }

    }

    for( j = 0 ; j < i ; j++ )
    {
        s = string[j];

        fin = strrchr( string[j] , '\0' ) - 1;

            while( caracterValido( &s , 1 ) && caracterValido( &fin , -1 ) && tolower(*s) == tolower(*fin) && ( s < fin ) )
            {
                s++;
                fin--;
            }

            if( s >= fin && *s != '\0'  )
                puts( ES_PALINDROMO );
            else
                puts( NO_ES_PALINDROMO );
    }

}

int caracterValido( char ** s , int i )
{
    while ( (tolower(**s) >= 'a' && **s <= 'z') || **s == '.' || **s == ',' || **s == '!' || **s == '?' || **s == ' ')
    {
        if( !(tolower(**s) >= 'a' && **s <= 'z') )
            *s += i;
        else
        return 1;

    }

    return 0;

}


brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: 10945 - Mother Bear WA why? Anyone help me please

Post by brianfry713 » Sun Oct 07, 2012 7:46 pm

This isn't printing anything. Don't use fflush(stdin). main should return 0 on completion.
Check input and AC output for thousands of problems on uDebug!

Post Reply

Return to “Volume 109 (10900-10999)”