Page 1 of 2

### 10469 - To Carry or not to Carry

Posted: Thu Apr 24, 2003 6:24 am
Problem 10469 is quite simple, but how would judge input the test number?
should i keep on reading until it terminate my problem anyway?
it hasn't been announced as a "multiple input"

Posted: Thu Apr 24, 2003 9:34 am
The problem statement clearly states,
Input ends at EOF.
If you're writing the solution in C, you could use:
[c]
int main() {
while (scanf("%d %d",&a,&b)==2) {
/* do whatever is needed */
}
return 0;
}
[/c]

### Thanks

Posted: Thu Apr 24, 2003 12:50 pm
It's alright, thank you very much
Actually i've just tried to use C++ and stream I/O instead of C
so i was not sure how to deal with EOF then

Posted: Thu Apr 24, 2003 6:46 pm
for C++ and stream I/O, i think you can use:
[cpp]while(cin >> a >> b)
{
...
}[/cpp]

### hiiiiiiiii

Posted: Fri Oct 10, 2003 10:38 pm
just print...
(a^b)
get accccccccccccccc
thx.

### Re: hiiiiiiiii

Posted: Wed Jun 06, 2007 5:50 am
nikhil wrote:just print...
(a^b)
get accccccccccccccc
thx.
OMG, I wasted my time to convert a and b to binary number and XoR them. With my previous code, I got WA. But with only one line code, I got AC. Thank u very much.

### I keep getting wrong answer

Posted: Tue Jul 10, 2007 8:59 pm
My code is in C++, is really simple. It works well in my computer but maybe I should input some critical inputs. I just keep getting WA and I have no idea why.
Here is my code:

/*
problem# 10469

*/

#include <iostream>
....
.....deleted
.....
.....

int main ()
{

while( !cin.eof() )
{
.....
.....
..deleted...
................

cout << result << endl;
}

return 0;
}

Thanks

Posted: Wed Jul 11, 2007 10:36 am
>>mario
I generate some random test case & compare ur output with my AC code output. ur code generate one extra output.Problem in ur input terminating condition.

Code: Select all

``while( !cin.eof() )``
instead of using this u can use

Code: Select all

``while(cin >> x >> y)``
Hope this helps.

Posted: Thu Jul 12, 2007 3:27 pm
Thanks, that was all. I got AC when I changed to cin >> x >> y.

Posted: Thu Jul 12, 2007 3:46 pm
If you got AC, remove your code plz..

### Re: 10469 - To Carry or not to Carry

Posted: Sat May 17, 2008 11:35 am
I'm having WA for this problem but don't know why. My answers seem to be alright. I've used a^b for output and
while(scanf("%d %d", &a, &b);

what should i do?

### Re: 10469 - To Carry or not to Carry

Posted: Sat May 17, 2008 5:47 pm
Make sure you use unsigned integers. Which also means you need to use "%u" instead of "%d" in both scanf and printf.

Edit: Fixed mistake.

### Re: 10469 - To Carry or not to Carry

Posted: Fri Oct 24, 2008 9:02 pm
I got runtime error with this code. re is common for me. I'm newbie. can someone help me to find the mistake in my code.

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>

int main()
{
long long f,f1,f2,j,i,n,b,l1,l2,l,sum,mul,k,l3;
char str[100],str1[100],res[100],h[100],ch,ch1;
while(1)
{
sum=0;
for(j=0; j<2; j++)
{
if(scanf("%lld",&n)==EOF)
exit(1);
for(i=0; ; i++)
{
if(n==0)
{
str='0';
str[i+1]='\0';
break;
}
if(n==1)
{
str='1';
str[i+1]='\0';
break;
}
if(n%2==0)
str='0';
else
{
str='1';
}
n=n/2;
}
if(j==0)
{
strcpy(str1,str);
str[0]='\0';
}

}

l1=strlen(str);
l2=strlen(str1);
if(l1>l2)
b=l1;
else
b=l2;
f=1;
f1=1;
f2=0;
k=0;
for(i=0; i<b; i++)
{
ch=str-48;
ch1=str1-48;
if(ch<0 || ch>1 || f==0)
{
ch=0;
f=0;
}
else if(ch1<0 || ch1>1 || f1==0)
{
ch1=0;
f1=0;
}

res[k++]=ch^ch1+48;
}
res[k]='\0';
l3=strlen(res);
k=0;
for(i=0; ; i++)
{
l3--;
if(res=='\0')
break;
if(res[l3]=='0' && f2==0)
continue;
f2=1;
h[k++]=res[l3];
}
h[k]='\0';
l=strlen(h)-1;
for(i=0; ;i++)
{
if(h=='\0')
break;
mul=(h[l--]-48)*pow(2,i);
sum+=mul;
}
str[0]='\0';
str1[0]='\0';
h[0]='\0';
res[0]='\0';
printf("%lld\n",sum);
}
return 0;
}

### Re: 10469 - To Carry or not to Carry

Posted: Fri Oct 24, 2008 10:35 pm
You are over complicating the problem.

Study the bitwise XOR operator.

### 10469 - To Carry or not to Carry

Posted: Tue Mar 05, 2013 5:27 am
please can anyone tell me whats wrong with this code ?

Code: Select all

``````#include <iostream>
#include <string>
#include <sstream>
using namespace std;

string convert (unsigned long long int n)
{
string s;
stringstream out;
out << n;
s = out.str();
return s;
}
int bit (unsigned long long int n)
{
unsigned long long int rem=0,sum=0,i=1;
while (n>0)
{
rem=n%2;
sum+=(i*rem);
n/=2;
i=i*10;
}
return sum;
}

int b_d(string w)
{
unsigned long long int result = 0, pow = 1;
for ( int i = w.length() - 1; i >= 0; --i, pow <<= 1 ) //pow=pow<<1; shifting pow to the left
result += (w[i] - '0') * pow;

return result;
}

int main()
{
string w1,w2,k,w3,w4;
unsigned long long int n1,n2,l1,l2,l3;
while(cin>>n1>>n2)
{
w1=w2=w3=w4=k="";
l1=l2=0;
n1=bit(n1);
n2=bit(n2);
cout<<n1<<" "<<n2<<endl;
w1=convert(n1);
w2=convert(n2);
l1=w1.length();
l2=w2.length();
if (l2>l1)
for (int i=l1;i<l2;i++)
w3+="0";
else
for (int i=l2;i<l1;i++)
w4+="0";
w3+=w1;
w4+=w2;
for (int i=0;i<w3.length();i++)
{
if ( (w3[i]=='1' && w4[i]=='0') || (w3[i]=='0' && w4[i]=='1') )
k+="1";
else k+="0";
}
cout<<w3<<" "<<w4<<" "<<k<<endl;
cout<<b_d(k)<<endl;

}
return 0;
}
``````