玄关/加强数据:样例1没过但能AC
查看原帖
玄关/加强数据:样例1没过但能AC
356117
落木之樱meow楼主2024/7/19 21:09

求调

#include <stdio.h>
#include <string.h>
#define N 101
typedef long long ll;
using namespace std;

int n;
int arr[N];

class table {
    public:
        char table_name[N];
        char data[N][N][N];
        int x, y;
        void input() {
            scanf("%s", &table_name);
            scanf("%d%d", &x, &y);
            for (int i = 1; i <= y; i++) {
                scanf("%s", data[1][i]);
            }
            for (int i = 2; i <= x; i++) {
                for (int j = 1; j <= y; j++) {
                    scanf("%s", &data[i][j]);
                }
            }
        }
};
table tb[11];

int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        tb[i].input();
    }
    int m;
    char sx[N];
    scanf("%d", &m);
    int col_len;
    char columns[N][N];
    char table_name[N];
    char header[N];
    char x[N];
    while (m--) {
        int p = 0;
        char temp[N];
        {
            scanf("%s", sx);
            scanf("%s", columns[0]);
            scanf("%s", sx);
            scanf("%s", table_name);
            scanf("%s", sx);
            scanf("%s", sx);
            while (sx[p] != '=') {
                header[p] = sx[p];
                p++;
            }
            p++;
            int XXX = 0;
            while (sx[p] != '\0') {
                x[XXX++] = sx[p];
                p++;
            }
        }
        int tempP = 0;
        p = 0;
        col_len = 1;
        while (columns[0][p] != '\0') {
            if (columns[0][p] != ',') {
                temp[tempP++] = columns[0][p];
            } else {
                for (int i = 0; i < tempP; i++) {
                    columns[col_len][i] = temp[i];
                }
                col_len++;
                tempP = 0;
            }
            p++;
        }
        for (int i = 0; i < tempP; i++) {
            columns[col_len][i] = temp[i];
        }
        for (int i = 1; i <= n; i++) {
            if (strcmp(tb[i].table_name, table_name) == 0) {
                int headerP;
                for (int j = 1; j <= tb[i].y; j++) {
                    if (strcmp(tb[i].data[1][j], header) == 0) {
                        headerP = j;
                        continue;
                    }
                }
                for (int j = 2; j <= tb[i].x; j++) {
                    if (strcmp(tb[i].data[j][headerP], x) == 0) {
                        for (int px = 1; px <= col_len; px++) {
                            int columnP;
                            for (int q = 1; q <= tb[i].y; q++) {
                                if (strcmp(tb[i].data[1][q], columns[px]) == 0) {
                                    columnP = q;
                                    continue;
                                }
                            }
                            printf("%s ", tb[i].data[j][columnP]);
                        }
                        printf("\n");
                    }
                }
            }
        }
    }

    return 0;
}

rp++

2024/7/19 21:09
加载中...