求助
查看原帖
求助
186954
aaac楼主2023/11/14 20:15

为什么第三个样例操作一过不去

#define N 110

int n, Type_num = 5;

long long count;

struct node
{
    string Type;
    vector<string> Type_member;
    vector<string> member_names;
    long long Memory_size;
    long long Memory_require;
} Types[N];

void init()
{
    Types[1].Type = "byte";
    Types[1].Memory_size = Types[1].Memory_require = 1;
    Types[2].Type = "short";
    Types[2].Memory_size = Types[2].Memory_require = 2;
    Types[3].Type = "int";
    Types[3].Memory_size = Types[3].Memory_require = 4;
    Types[4].Type = "long";
    Types[4].Memory_size = Types[4].Memory_require = 8;
    return;
}

void operate1()
{
    string type_name;
    int num;
    cin >> type_name >> num;
    Types[Type_num].Type = type_name;
    string s, t;
    long long pos = 0;
    for (int i = 1; i <= num; ++i)
    {
        cin >> s >> t;
        Types[Type_num].Type_member.push_back(s);
        Types[Type_num].member_names.push_back(t);
        for (int j = 1; j < Type_num; ++j)
            if (Types[j].Type == s)
            {
                Types[Type_num].Memory_require = max(Types[Type_num].Memory_require, Types[j].Memory_require);
                if (pos % Types[j].Memory_require)
                    pos += (Types[Type_num].Memory_require - (pos % Types[j].Memory_require));
                pos += Types[j].Memory_size;
                break;
            }
    }
    if (pos % Types[Type_num].Memory_require)
        pos += (Types[Type_num].Memory_require - (pos % Types[Type_num].Memory_require));
    Types[Type_num].Memory_size = pos;
    printf("%lld% lld\n", Types[Type_num].Memory_size, Types[Type_num].Memory_require);
    ++Type_num;
    return;
}
2023/11/14 20:15
加载中...