问题 3634 --结构体字节数

3634: 结构体字节数★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 326  解决: 158
[提交][状态][命题人:]

题目描述

天佑知道int类型的变量占4个字节,double类型的变量占8个字节,char类型的变量占1个字节

张博士讲结构体字节数时,天佑有点蒙,他经过用心专研,终于搞明白了

比如一个结构体定义如下:

struct wty

{

     char a;

     double b;

     int c;

};

这其中double的字节数最大为8,故char和int也都会自动延长到8个字节,

所以sizeof(wty)的值为24

又比如

struct ssy

{

     char a;

     int c;

     double b;

};

因为double类型的字节数为8,

故char+int加起来为5个字节数,会被延长为8个字节

所以sizeof(ssy)的值为16

上述结构体中,都是三个变量,但是所占有的字节数却不一样

天佑想请你告诉他,如果结构体中的变量顺序可以随意调整

那该如何定义才能使得结构体所占的字节数最少呢?

输入

一个整数n

下面n行,每行定义一个变量,变量类型为char, double, int中的其中一种

输出

结构体最少占有的字节数

样例输入
Copy
4
char  a
double b
int c
char d
样例输出
Copy
16

提示

来源

[提交][状态]