题目意思:

  给定n, expect, a, b 要求你构造一组array[],存放一个1..n的排列,使的下面的程序能输出YES

  题目所示代码:

    

 1 bool less_than(x, y) {
 2     T++;
 3     return x < y;
 4 }
 5 void work(array[], l, r) {
 6     if (l >= r) return;
 7     swap(array[(l * A + r * B) / (A + B)], array[r]);
 8     int index = l;
 9     for (i = l; i < r; i++)
10         if (less_than(array[i], array[r]))
11             swap(array[index++], array[i]);
12     swap(array[r], array[index]);
13     work(array, l, index - 1);
14     work(array, index + 1, r);
15 }
16 void main() {
17     T = 0;
18     Input(n, expect, A, B, array[]);
19     work(array, 0, n - 1);
20     if (T == expect)
21         Output("YES");
22     else
23         Output("NO");
24 }
sort

相关文章:

  • 2022-03-01
  • 2021-12-19
  • 2021-07-13
  • 2021-12-18
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
猜你喜欢
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2022-03-10
  • 2022-12-23
相关资源
相似解决方案