| Run ID | Author | Problem | Lang | Verdict | Time | Memory | Code Length | Submit Time |
|---|---|---|---|---|---|---|---|---|
| 315659 | yukunwei | 最大的和 T5 | C | Accepted | 8 MS | 764 KB | 1415 | 2026-04-12 12:31:59 |
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <limits.h> // 比较函数,用于qsort升序排序 int compare(const void *a, const void *b) { return *(int *)a - *(int *)b; } int main() { int n, d; scanf("%d %d", &n, &d); int *a = (int *)malloc(n * sizeof(int)); int *b = (int *)malloc(n * sizeof(int)); // 读取序列a for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } // 读取序列b for (int i = 0; i < n; i++) { scanf("%d", &b[i]); } // 对a和b进行升序排序 qsort(a, n, sizeof(int), compare); qsort(b, n, sizeof(int), compare); int i = n - 1; // a的最大元素索引 int j = n - 1; // b的最大元素索引 int max_sum = INT_MIN; while (i >= 0 && j >= 0) { int diff = abs(a[i] - b[j]); if (diff <= d) { // 找到符合条件的最大和 max_sum = a[i] + b[j]; break; } else if (a[i] > b[j]) { // a[i]太大,减小i i--; } else { // b[j]太大,减小j j--; } } if (max_sum != INT_MIN) { printf("%d\n", max_sum); } else { printf("None\n"); } free(a); free(b); return 0; }