火车调度
#include<stdio.h>
#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 <a.len; 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;
}