求打大老挑错(关注)!!!
查看原帖
求打大老挑错(关注)!!!
488827
Super_Supper楼主2021/11/26 22:20

第七个点WA了QWQ

#include <iostream>
#define ll long long
using namespace std;
const ll N = 1e6 + 5;
ll n,a[N],b[N],ans = 2147483647;
int main(){
  cin >> n;
  for(ll i = 1;i <= n;i++){
    cin >> a[i];
    b[i] = a[i];
  }
  for(ll o = -1;o <= 1;o++){
    for(ll k = -1;k <= 1;k++){
      ll res = 0;
      for(ll i = 1;i <= n;i++){
        a[i] = b[i];
      }
      a[1] += o;
      a[2] += k;
      res += abs(o) + abs(k);
      ll i,s = abs(a[2] - a[1]);
      // cout << s << endl;
      for(i = 3;i <= n;i++){
        if(abs(a[i] - a[i - 1]) > 1 + s || abs(a[i] - a[i - 1]) < s - 1){
          break;
        } else if(abs(a[i] - a[i - 1]) == 1 + s){
          a[i]++;
          res++;
        } else if(abs(a[i] - a[i - 1]) == s - 1){
          a[i]--;
          res++;
        }
        // cout << a[i] << ' ' << a[i - 1] << endl;
      }
      if(i == n + 1){
        ans = min(ans,res);
        // for(int i = 1;i <= n;i++){
        //   cout << a[i] << ' ';
        // }
        // cout << endl;
      }
    }
  }
  cout << (ans == 2147483647 ? -1 : ans);
  return 0;
}
2021/11/26 22:20
加载中...