#include <stdio.h>
#include <limits.h>
#include <stdbool.h>
#include <stdlib.h>
int divide(int dividend, int divisor) {
// Edge case: overflow (use INT_MIN and INT_MAX in <limits.h>)
if (dividend == INT_MIN && divisor == -1) return INT_MAX;
// Sign (use ^ to calculate XOR)
bool negative = (dividend < 0) ^ (divisor < 0);
// Work with positive values (use llabs when variable is type long long)
long long a = llabs((long long)dividend);
long long b = llabs((long long)divisor);
long long result = 0;
while (a >= b) { // subtract divisor until what's left < divisor
a -= b;
result++;
}
// Apply sign
return negative ? -result : result;
}
int main() {
int dividend, divisor;
scanf("%d %d", ÷nd
, &divisor
); printf("%d\n", divide
(dividend
, divisor
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHN0ZGJvb2wuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKaW50IGRpdmlkZShpbnQgZGl2aWRlbmQsIGludCBkaXZpc29yKSB7CiAgICAvLyBFZGdlIGNhc2U6IG92ZXJmbG93ICh1c2UgSU5UX01JTiBhbmQgSU5UX01BWCBpbiA8bGltaXRzLmg+KQogICAgaWYgKGRpdmlkZW5kID09IElOVF9NSU4gJiYgZGl2aXNvciA9PSAtMSkgcmV0dXJuIElOVF9NQVg7CgogICAgLy8gU2lnbiAodXNlIF4gdG8gY2FsY3VsYXRlIFhPUikKICAgIGJvb2wgbmVnYXRpdmUgPSAoZGl2aWRlbmQgPCAwKSBeIChkaXZpc29yIDwgMCk7CgogICAgLy8gV29yayB3aXRoIHBvc2l0aXZlIHZhbHVlcyAodXNlIGxsYWJzIHdoZW4gdmFyaWFibGUgaXMgdHlwZSBsb25nIGxvbmcpCiAgICBsb25nIGxvbmcgYSA9IGxsYWJzKChsb25nIGxvbmcpZGl2aWRlbmQpOwogICAgbG9uZyBsb25nIGIgPSBsbGFicygobG9uZyBsb25nKWRpdmlzb3IpOwoKICAgIGxvbmcgbG9uZyByZXN1bHQgPSAwOwogICAgd2hpbGUgKGEgPj0gYikgeyAgIC8vIHN1YnRyYWN0IGRpdmlzb3IgdW50aWwgd2hhdCdzIGxlZnQgPCBkaXZpc29yCiAgICAgICAgYSAtPSBiOwogICAgICAgIHJlc3VsdCsrOwogICAgfQoKICAgIC8vIEFwcGx5IHNpZ24KICAgIHJldHVybiBuZWdhdGl2ZSA/IC1yZXN1bHQgOiByZXN1bHQ7Cn0KCmludCBtYWluKCkgewogICAgaW50IGRpdmlkZW5kLCBkaXZpc29yOwogICAgc2NhbmYoIiVkICVkIiwgJmRpdmlkZW5kLCAmZGl2aXNvcik7CiAgICBwcmludGYoIiVkXG4iLCBkaXZpZGUoZGl2aWRlbmQsIGRpdmlzb3IpKTsKICAgIHJldHVybiAwOwp9Cg==