当前位置:   article > 正文

CodeForces 985A.Chess Placing(水题)_有一个形如“黑白黑白黑白……”的 1 × nn 棋盘(2 ≤ n ≤ 1002≤n≤100,且 nn

有一个形如“黑白黑白黑白……”的 1 × nn 棋盘(2 ≤ n ≤ 1002≤n≤100,且 nn


题意是有一个1*n的棋盘,黑白相间的,然后输入n/2个棋子的位置,每个棋子一次只能向左向右移动一格,问最少需要几步才能让所有棋子在同一个颜色的棋盘上。

思路很简单,奇数扫一遍,偶数扫一遍就好了。


AC代码:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <string>
  5. #include <cmath>
  6. #include <algorithm>
  7. #define ll long long
  8. using namespace std;
  9. ll n;
  10. int ans[105];
  11. int main()
  12. {
  13. scanf("%lld",&n);
  14. ll m = n / 2;
  15. for(int i=1;i<=m;i++){
  16. scanf("%lld",&ans[i]);
  17. }
  18. sort(ans+1,ans+m+1);
  19. ll temp1 = 0, temp2 = 0;
  20. for(int i=1,j=1;i<=n,j<=m;i+=2,j++){
  21. temp1 += abs(i - ans[j]);
  22. }
  23. for(int i=2,j=1;i<=n,j <= m;i+=2,j++){
  24. temp2 += abs(i - ans[j]);
  25. }
  26. printf("%lld\n",temp1<temp2?temp1:temp2);
  27. return 0;
  28. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/912660
推荐阅读
相关标签
  

闽ICP备14008679号