結果
| 問題 |
No.8057 A xor B = C
|
| コンテスト | |
| ユーザー |
mannshi222jp
|
| 提出日時 | 2022-02-11 15:20:32 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 5,876 bytes |
| コンパイル時間 | 1,702 ms |
| コンパイル使用メモリ | 30,848 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-27 09:34:15 |
| 合計ジャッジ時間 | 2,136 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 5 |
ソースコード
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
int divide( char *s );
bool zero( char *s );
int main()
{
char a[10000];
char b[10000];
char tmp[10000];
char ttmp[10000];
int la, lb;
int ad, bd;
int t, tt;
int len;
scanf( "%s\n", a );
scanf( "%s\n", b );
// 桁そろえ
la = strlen( a );
lb = strlen( b );
if( la > lb ) {
for( int i = 0; i < la - lb; i++ ) {
tmp[i] = '0';
}
tmp[la-lb] = '\0';
strcat( tmp, b );
strcpy( b, tmp );
}
else if( la < lb ) {
for( int i = 0; i < lb - la; i++ ) {
tmp[i] = '0';
}
tmp[lb-la] = '\0';
strcat( tmp, a );
strcpy( a, tmp );
}
/*
printf("<%s>\n", a);
printf("<%s>\n", b);
fflush(stdout);
/**/
len = strlen( a );
while( !zero( a ) || !zero( b ) ) {
la = strlen( a );
ad = ( a[la -1] - '0' ) % 2;
bd = ( b[la -1] - '0' ) % 2;
if( ad == bd ) {
tmp[t++] = '0';
}
else {
tmp[t++] = '1';
}
divide( a );
divide( b );
}
tmp [t] = '\0';
// reverse
tt = 0;
t--;
do {
ttmp[tt++] = tmp[t--];
} while( t >= 0 );
ttmp[tt] = '\0';
if( zero( ttmp ) ) {
printf( "0\n" );
return 0;
}
tt = 0;
while( ttmp[tt++] == '0' ) ;
strcpy( tmp, ttmp+tt-1 );
printf("%s\n", tmp );
return 0;
}
int divide( char *s )
{
char tmp[100000];
int t = 0;
bool crr;
crr = false;
for( int i = 0; s[i] != '\0'; i++ ) {
if( crr == false ) {
switch( s[i] ) {
case '0':
tmp[t++] = '0';
crr = false;
break;
case '2':
tmp[t++] = '1';
crr = false;
break;
case '4':
tmp[t++] = '2';
crr = false;
break;
case '6':
tmp[t++] = '3';
crr = false;
break;
case '8':
tmp[t++] = '4';
crr = false;
break;
case '1':
tmp[t++] = '0';
crr = true;
break;
case '3':
tmp[t++] = '1';
crr = true;
break;
case '5':
tmp[t++] = '2';
crr = true;
break;
case '7':
tmp[t++] = '3';
crr = true;
break;
case '9':
tmp[t++] = '4';
crr = true;
break;
}
}
else { // crr == true
switch( s[i] ) {
case '0':
tmp[t++] = '5';
crr = false;
break;
case '2':
tmp[t++] = '6';
crr = false;
break;
case '4':
tmp[t++] = '7';
crr = false;
break;
case '6':
tmp[t++] = '8';
crr = false;
break;
case '8':
tmp[t++] = '9';
crr = false;
break;
case '1':
tmp[t++] = '5';
crr = true;
break;
case '3':
tmp[t++] = '6';
crr = true;
break;
case '5':
tmp[t++] = '7';
crr = true;
break;
case '7':
tmp[t++] = '8';
crr = true;
break;
case '9':
tmp[t++] = '9';
crr = true;
break;
}
}
}
tmp[t] = '\0';
strcpy( s, tmp );
return 0;
}
bool zero( char *s )
{
while( *s == '0' ) {
s++;
}
if( *s == '\0' ) {
return true;
}
else {
return false;
}
}
mannshi222jp