#include #include void sort(double *, int); int less(double *A, int NA); int main(void) { double *A, *B, x; int NA = 0, NB = 0, N, i, k = -1; FILE *IN, *OUT; IN = fopen("ina.txt", "r"); if (IN == NULL) { printf("File ina.txt not opened\n"); return -1; } while (fscanf(IN, "%lf", &x) == 1) ++NA; fclose(IN); IN = fopen("inb.txt", "r"); if (IN == NULL) { printf("File inb.txt not opened\n"); return -1; } while (fscanf(IN, "%lf", &x) == 1) ++NB; fclose(IN); if ((NA == 0) || (NB == 0)) { printf("Wrong size\n"); return -1; } N = NA; if (N < NB) { N = NB; } A = (double*)malloc(sizeof(double) * N); if (A == NULL) return -1; B = (double*)malloc(sizeof(double) * N); if (B == NULL) return -1; IN = fopen("ina.txt", "r"); if (IN == NULL) { return -1; } for(i = 0; i < NA; i++) { if (fscanf(IN, "%lf", &A[i]) != 1) return -1; } fclose(IN); IN = fopen("inb.txt", "r"); if (IN == NULL) return -1; for(i = 0; i < NB; i++) { if (fscanf(IN, "%lf", &B[i]) != 1) return -1; } fclose(IN); sort(A, NA); sort(B, NB); for (i = NA; i < N; i++) { A[i] = A[NA-1]; } for (i = NB; i < N; i++) { B[i] = B[NB-1]; } for (i = 0; i < N; i++) { A[i] -= B[i]; } k = less(A, N); OUT = fopen("output.txt", "w"); if (OUT == NULL) { printf("File output.txt not opened\n"); return -1; } #if 0 if (k == 1) fprintf(OUT, "YES"); else fprintf(OUT, "NO"); #endif fprintf(OUT, "%s", k ? "YES" : "NO"); fclose(OUT); free(A); free(B); return 0; } void sort(double *a, int n) { int i, j; double buf; for (j = 0; j < n; j++) { for (i = 0; i < n - 1; i++) { if (a[i] > a[i+1]) { buf = a[i]; a[i] = a[i+1]; a[i+1] = buf; } } } } int less(double *A, int N) { int k = 1, i; for (i = 0; i < N; i++) { if (A[i] >= 0) { k = 0; break; } } return k; }