fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #define MAX_NUM 10000
  5. #define SIZEOF_ARY (sizeof(int)*((MAX_NUM*2)+1))
  6. int main_part11_236(int argc, char *argv[]) {
  7. int *ary;
  8. int i, j, f, n, m;
  9. ary = malloc(SIZEOF_ARY);
  10. memset(ary, 0, SIZEOF_ARY);
  11. printf("[");
  12. for (i = 1; i < argc; i++) {
  13. n = atoi(argv[i]);
  14. printf("%s%d", (i > 1) ? ", " : "", n);
  15. }
  16. printf("]\n");
  17. printf("-> [");
  18. for (i = 1, f = 0; i < argc; i++) {
  19. n = atoi(argv[i]);
  20. if (n >= -MAX_NUM && n <= MAX_NUM) {
  21. m = 100 - n;
  22. if (m >= -MAX_NUM && m <= MAX_NUM) {
  23. for (j = 0; j < ary[m + MAX_NUM]; j++) {
  24. printf("%s[%d, %d]", f ? ", " : "", (n < m) ? n : m, (n < m) ? m : n);
  25. f = 1;
  26. }
  27. }
  28. ary[n + MAX_NUM]++;
  29. }
  30. }
  31. printf("]\n");
  32. free(ary);
  33. }
  34. int main(int argc, char *argv[]) {
  35. char *argv1[] = {"", "1", "99", "20"};
  36. char *argv2[] = {"", "62", "116", "181", "86", "60", "98", "-16", "73", "131", "16", "80", "-81", "40"};
  37. char *argv3[] = {"", "100", "0", "100", "0"};
  38. if (argc <= 1) {
  39. main_part11_236(sizeof(argv1) / sizeof(char*), argv1);
  40. main_part11_236(sizeof(argv2) / sizeof(char*), argv2);
  41. main_part11_236(sizeof(argv3) / sizeof(char*), argv3);
  42. } else {
  43. main_part11_236(argc, argv);
  44. }
  45. return 0;
  46. }
Success #stdin #stdout 0s 4484KB
stdin
Standard input is empty
stdout
[1, 99, 20]
-> [[1, 99]]
[62, 116, 181, 86, 60, 98, -16, 73, 131, 16, 80, -81, 40]
-> [[-16, 116], [-81, 181], [40, 60]]
[100, 0, 100, 0]
-> [[0, 100], [0, 100], [0, 100], [0, 100]]