2 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; int pos1 = 0, posn = 0; // [1] 分别记录编号1和编号n的书的位置 for(int i = 0; i < n; i++){ int x; cin >> x; if(x == 1) pos1 = i; // [2] 定位编号1的书 if(x == n) posn = i; // [3] 定位编号n的书 } int sum = pos1 + (n - 1 - posn); // [4] 计算基础移动次数 if(pos1 > posn) sum--; // [5] 核心修正:若1在n右侧,总次数减1(1左移时推动了n) cout << sum; return 0; }
信息
- ID
- 1471
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者