- #include <stdio.h>
- #include <stdlib.h>
- //替换验证不同的输入即可
- //int a[6] = { 1, 1, 1, 1, 1, 1 };
- //int b[6] = { 1, 1, 1, 7, 7, 7 };
- int a[6] = { 2, 5, 7, 10, 5, 2};
- int b[6] = { 3, 8, 4, 11, 3, 4};
- int r[6];//6个任务分别选的是1-a或者2-b
- //对每种可能的调度算总(最长)时间
- int Total()
- {
- int suma = 0;
- int sumb = 0;
- for (int i = 0; i < 6; i++)
- {
- if (r[i] == 1)
- suma += a[i];
- else if (r[i] == 2)
- sumb += b[i];
- else
- printf("Error\\n");
- }
- return suma>=sumb?suma:sumb;
- }
- int main()
- {
- int min = 10000;
- for ( r[0] = 1; r[0] <= 2; r[0]++)
- {
- for ( r[1] = 1; r[1] <= 2; r[1]++)
- {
- for ( r[2] = 1; r[2] <= 2; r[2]++)
- {
- for ( r[3] = 1; r[3] <= 2; r[3]++)
- {
- for ( r[4] = 1; r[4] <= 2; r[4]++)
- {
- for ( r[5] = 1; r[5] <= 2; r[5]++)
- {
- int t = Total();
- if (t < min)//遇到更优的就输出调度顺序
- {
- for (int j = 0; j < 6; j++)
- {
- printf("%c ",r[j]==1?'a':'b');
- }
- printf("\\n");
- min = t;
- }
- }
- }
- }
- }
- }
- }
- printf("%d\\n",min);
- system("pause");
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/210520149630.html
来源: http://www.codesnippet.cn/detail/210520149630.html