#include <stdio.h>

#include <string.h>


char a[1002], b[1002], c[2003], tmp[2003];

int as, bs, cs;

int al, bl, nl;

char* max, * min;

int maxl, minl;


int i, j, k;



void reverse(char* n) {

nl = strlen(n);

for (i = 0; i < nl; i++) tmp[i] = n[nl - 1 - i];

for (i = 0; i < nl; i++) n[i] = tmp[i];

}


void add() {

c[maxl] = '0'; 

c[maxl + 1] = 0;

for (i = 0; i < maxl; i++) c[i] = max[maxl - 1 - i];

for (i = 0; i < minl; i++) c[i] += min[minl - 1 - i] - '0';

for (i = 0; i < maxl; i++) {

if (c[i] > '9') {

c[i] -= 10;

c[i + 1]++;

}

}

if (as) { 

if (c[maxl] == '0') c[maxl] = '-';

else {

c[maxl + 1] = '-';

c[maxl + 2] = 0;

}

} else {

if (c[maxl] == '0') c[maxl] = 0;

}


reverse(c);

}


void sub() {

int k = maxl;

for (i = 0; i < maxl; i++) c[i] = max[maxl - 1 - i];

for (i = 0; i < minl; i++) c[i] -= min[minl - 1 - i] - '0';

for (i = 0; i < maxl; i++) {

if (c[i] < '0') {

c[i] += 10;

c[i + 1]--;

}

}

while (k > 0 && c[--k] == '0') {}

if (k == 0) {

c[++k] = 0;

reverse(c);

return;

}

if ((!as && max == b + bs) || (as && max == a + as)) {

c[++k] = '-';

}

c[++k] = 0;


reverse(c);

}


void mul() {

int m, n, o;

reverse(max);

reverse(min);

for (i = 0; i < maxl + minl; i++) c[i] = '0';

c[maxl + minl] = 0;

for (i = 0; i < maxl; i++) {

for (j = 0; j < minl; j++) {

m = max[i] - '0';

n = min[j] - '0';

o = m * n;

c[i + j] += o % 10;

if (c[i + j] > '9') {

c[i + j] -= 10;

c[i + j + 1]++;

}

c[i + j + 1] += o / 10;

if (c[i + j + 1] > '9') {

c[i + j + 1] -= 10;

c[i + j + 2]++;

}

}

}

if (as != bs) {

if (c[maxl + minl - 1] == '0') c[maxl + minl - 1] = '-';

else {

c[maxl + minl] = '-';

c[maxl + minl + 1] = 0;

}

} else {

if (c[maxl + minl - 1] == '0') c[maxl + minl - 1] = 0;

}

reverse(c);

}


int main() {

scanf("%s\n %s", a, b);

if (*a == '-') as++;

if (*b == '-') bs++;


al = strlen(a + as);

bl = strlen(b + bs);


if ((al > bl) || (al == bl && strcmp(a + as, b + bs) >= 0)) {

max = a + as;

maxl = al;

min = b + bs;

minl = bl;

} else {

max = b + bs;

maxl = bl;

min = a + as;

minl = al;

}


if (!as && !bs) {

add();

printf("%s\n", c);

sub();

printf("%s\n", c);

mul();

printf("%s\n", c);

} else if (!as && bs) {

sub();

printf("%s\n", c);

add();

printf("%s\n", c);

mul();

printf("%s\n", c);

} else if (as && !bs) {

sub();

printf("%s\n", c);

add();

printf("%s\n", c);

mul();

printf("%s\n", c);

} else if (as && bs) {

add();

printf("%s\n", c);

sub();

printf("%s\n", c);

mul();

printf("%s\n", c);

}

}



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec84fa11d0283195504478ca9b7677dc322d30c9369b453947db6f425043b0bee9834f9c9031645f922362fe6a49390c480452fff8b71d44f6a87afb31

viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec84fa11d0283195504478ca9b7677dc322d30c9369b453947db6f425043b0bee9834f9c9031645f922362fe6a49390c485304a4acee4f48154bfd4aa6




나눗셈 문제는 진짜 하루종일 리트하며 겨우겨우 맞췄는데
이거는 한방에 맞춰서 기분 개좋아
알고리즘 씹꿀잼이노

이정도면 브론즈 4 빠른 승급 ㅇㅈ?