fork(1) download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. int main()
  5. {
  6. unsigned long long int i, j, res;
  7.  
  8. char outbuff[2500000]; /* To be certain there's no overflow here */
  9. char *out = outbuff;
  10.  
  11. int c = 0;
  12.  
  13. while(1) {
  14. i = j = 0;
  15.  
  16. /* Skip whitespace before first number and check if end of input */
  17. do {
  18. c = getchar();
  19. } while(c != EOF && !(c >= '0' && c <= '9'));
  20.  
  21. /* If end of input, print answer and return */
  22. if(c == EOF) {
  23. *(--out) = '\0';
  24. puts(outbuff);
  25. return 0;
  26. }
  27.  
  28. /* Read first integer */
  29. do {
  30. i = 10 * i + (c - '0');
  31. c = getchar();
  32. } while(c >= '0' && c <= '9');
  33.  
  34. /* Skip whitespace between first and second integer */
  35. do {
  36. c = getchar();
  37. } while(!(c >= '0' && c <= '9'));
  38.  
  39. /* Read second integer */
  40. do {
  41. j = 10 * j + (c - '0');
  42. c = getchar();
  43. } while(c >= '0' && c <= '9');
  44.  
  45. if(i > j)
  46. res = i-j;
  47. else
  48. res = j-i;
  49.  
  50. /* Buffer answer */
  51. unsigned long long divisor = 1000000000;
  52. /* Skip trailing 0s until the last one */
  53. while(res / divisor == 0 && divisor >= 10) {
  54. divisor /= 10;
  55. }
  56. /* Buffer digits */
  57. while(divisor != 0) {
  58. unsigned long long digit = res / divisor;
  59. *(out++) = digit + '0';
  60. res -= divisor * digit;
  61. divisor /= 10;
  62. }
  63. *(out++) = '\n';
  64. }
  65. }
Success #stdin #stdout 0s 11736KB
stdin
10 12
10 14
100 200
stdout
2
4
100