Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdbool.h>
- /*DEBUG*/
- enum
- {
- MAX_LEN_PATH = FILENAME_MAX + 2,
- MAX_OPEN_FILES = 100,
- MAX_NUM_FROM_FILES = 4
- };
- int mas[MAX_OPEN_FILES][10000], sz[MAX_OPEN_FILES];
- void
- my_func(char path[MAX_OPEN_FILES][MAX_LEN_PATH], int num)
- {
- FILE *out = stdout;
- FILE *in = NULL;
- printf("FUNC\n");
- int i, j, pos[MAX_OPEN_FILES], sz[MAX_OPEN_FILES];
- for(i = 0; i < num; ++i) {
- in = fopen(path[i], "r");
- sz[i] = 0;
- while(fscanf(in, "%d", &mas[i][sz[i]]) == 1) {
- ++sz[i];
- }
- fclose(in);
- }
- for(i = 0; i < num; ++i) {
- pos[i] = 0;
- }
- bool flag;
- for(i = 0; i < sz[0]; ++i) {
- flag = true;
- for(j = 1; j < num; ++j) {
- while(pos[j] < sz[j] && mas[j][pos[j]] > mas[0][i]) {
- ++pos[j];
- }
- if(pos[j] == sz[j] || mas[j][pos[j]] != mas[0][i]) {
- flag = false;
- break;
- }
- }
- if(flag) {
- fprintf(out, "%d ", mas[0][i]);
- }
- }
- fprintf(out, "\n");
- }
- #include <stdlib.h>
- #include <time.h>
- void
- my_gen(int num, int N)
- {
- FILE *in = fopen("input.txt", "w");
- FILE *ff = NULL;
- char path[100], number[100];
- int i, j, c;
- srand(time(NULL));
- for(i=0; i<num; ++i)
- {
- path[0] = 'i';
- path[1] = 'n';
- path[2] = i/10 + '0';
- path[3] = i%10 + '0';
- path[4] = 0;
- strcat(path, ".txt");
- fprintf(in, "%s\n", path);
- ff = fopen(path, "w");
- c = rand()%10;
- for(j = 0; j < N; ++j) {
- fprintf(ff, "%d ", c);
- c -= rand()%2 + 1;
- }
- fclose(ff);
- }
- fclose(in);
- }
- int
- main(void)
- {
- freopen("input.txt", "r", stdin);
- my_gen(100, 1000);
- //return 0;
- enum
- {
- MAX_LEN_PATH = FILENAME_MAX + 2,
- MAX_OPEN_FILES = 100,
- MAX_NUM_FROM_FILES = 4
- };
- int i, j;
- char path[MAX_OPEN_FILES][MAX_LEN_PATH];
- int len, num = 0;
- fgets(path[num], MAX_LEN_PATH, stdin);
- while(!feof(stdin)) {
- len = strlen(path[num]);
- if(len && path[num][len-1] == '\n') {
- path[num][--len] = 0;
- }
- if(len && path[num][len-1] == '\r') {
- path[num][--len] = 0;
- }
- if(len) {
- ++num;
- }
- fgets(path[num], MAX_LEN_PATH, stdin);
- }
- long pos[MAX_OPEN_FILES];
- int date[MAX_OPEN_FILES];
- for(i=0; i<num; ++i) {
- pos[i] = 0;
- }
- printf("num=%d\n", num);
- FILE *in = NULL;
- int fli = 0;
- for(i = 0; i < num; ++i) {
- in = fopen(path[i], "r");
- if(fscanf(in, "%d", &date[i]) <= 0) {
- fclose(in);
- printf("\n");
- return 0;
- }
- pos[i] = ftell(in);
- fclose(in);
- }
- // my_func(path, num);
- int mn, mx;
- while(1) {
- mn = mx = 0;
- for(i = 1; i < num; ++i) {
- if(date[i] > date[mx]) {
- mx = i;
- }
- if(date[i] < date[mn]) {
- mn = i;
- }
- }
- //printf("%d %d\n", mn, mx);
- if(mn == mx) {
- printf("%d ", date[0]);
- for(i = 0; i < num; ++i) {
- in = fopen(path[i], "r");
- fseek(in, pos[i], SEEK_SET);
- if(fscanf(in, "%d", &date[i]) <= 0) {
- fclose(in);
- printf("\n");
- return 0;
- }
- pos[i] = ftell(in);
- fclose(in);
- }
- } else {
- in = fopen(path[mx], "r");
- fseek(in, pos[mx], SEEK_SET);
- if(fscanf(in, "%d", &date[mx]) <= 0) {
- fclose(in);
- break;
- }
- pos[mx] = ftell(in);
- fclose(in);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement