P1 修補圍籬
題目連結
題解
如果在兩端就直接取旁邊的高度,否則取跟左右邊高度的最小值。
時間複雜度
$O(n)$
AC程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <bits/stdc++.h> #define int long long #define N 105 #define IOS ios::sync_with_stdio(0),cin.tie(0) using namespace std; int n,A[N];
signed main(){ IOS; cin>>n; for(int i=0;i<n;i++)cin>>A[i]; int ans = 0; if(A[0] == 0)ans += A[1]; if(A[n-1] == 0)ans += A[n-2]; for(int i=1;i<n-1;i++){ if(A[i] == 0)ans += min(A[i-1],A[i+1]); } cout<<ans<<endl; }
|
BY peienwu