- #include
- #define MAX 100
- typedef struct Q {
- int data[MAX];
- int len;
- int last;
- }Q_t;
-
- Q_t a[MAX]; //MAX个队列
- void Init(Q_t* a) {
- a->len = 0;
- }
-
- void En(Q_t* a, int num) {
- a->last = num; //最后进入的值
- a->data[a->len++] = num;
- }
-
- void Print(Q_t a) {
- for (int i = 0; i
- printf("%d ", a.data[i]);
- }
- puts("");
- }
-
- int res = 0;
- int b[MAX];
- int main() {
- int n;
- scanf("%d", &n);
- for (int i = 0; i < n; i++) {
- scanf("%d", b + i);
- }
- for (int i = 0; i < n; i++) {
- int k = b[i];//分析第i个情况
- int flag = 0; //默认没找到
- for (int j = 0; j < res; j++) {//分析已经开辟的车找位置
- if (a[j].last > k) {
- flag = 1;
- En(&a[j], k);//入队列
- break;
- }
- }
- if (flag == 0) { //开辟一个新的队列
- Init(&a[res]);
- En(&a[res++],k);
- }
- }
-
- Print(a[0]);//打第一列的情况
- printf("%d", res);
- return 0;
- }