이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define endl "\n"
#define finp for(int i=0; i<n; i++)
#define fknp for(int k=0; k<n; k++)
#define yeap cout<<"YES"<<endl
#define nope cout<<"NO"<<endl
#define inpintn int n; cin>>n
#define inpintarrn int arr[n]; for(int i=0; i<n; i++){cin>>arr[i];}
#define inpllarrn long long arr[n]; for(int i=0; i<n; i++){cin>>arr[i];}
#define ll long long
using namespace std;
// ll max(ll a, ll b){
// if(a<b){
// return b;
// } else {
// return a;
// }
// }
int main ()
{
int t;
cin>>t;
int j=1;
while (j<=t)
{
int n;
cin>>n;
int ar[n];
int z=n-1;
int arr[z];
int l1=0;
int l=0;
int r=0;
for (int i=0; i<n; i++){
if(i==0){
cin>>ar[i];
} else {
cin>>ar[i];
arr[i-1]=ar[i-1]-ar[i];
}
}
for (int i=0; i<z; i++){
if(arr[i]<0){
r=r-arr[i]+1;
} else if(arr[i]>0){
l1=l1+arr[i]+1;
} else if (arr[i]==0){
l1++;
r++;
}
}
int ans=r;
int max;
// cout<<r<<endl;
for (int i=1; i<z; i++){
if(arr[i-1]>0){
l=l+arr[i-1]+1;
} else if(arr[i-1]<0){
r=r+arr[i-1]-1;
} else if(arr[i-1]==0){
l++;
r--;
}
if (l<r){
max=r;
} else {
max=l;
}
if (max<ans){
ans=max;
} else {
ans=ans;
}
}
if(l1<ans){
cout<<l1<<endl;
} else {
cout<<ans<<endl;
}
// cout<<l1<<endl;
// cout<<r<<endl;
j++;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |