为什么第三个样例操作一过不去
#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;
}