河南省住房城鄉(xiāng)建設(shè)廳官方網(wǎng)站window優(yōu)化大師
Description
又是北湖深坑,驚不驚喜,意不意外?!
?覺(jué)得用水填湖太沒(méi)意思了,用石頭填坑多有意思。
假設(shè)北湖的地面還是一維的,每一塊寬度都為1,高度是非負(fù)整數(shù),用一個(gè)數(shù)組來(lái)表示。
現(xiàn)提供不限量的??規(guī)格的石頭,問(wèn)是否可以將北湖填平。(所有地面到達(dá)同一高度即為填平)
注:石頭只能水平或垂直填放。
Input
樣例有多組輸入至文件末尾;
每組用例占兩行;
第一行輸入1個(gè)整數(shù)??表示北湖地面總寬度;
第二行輸入??個(gè)整數(shù)??,用空格間隔,表示地面高度。
Output
若能填平則輸出“YES”,否則輸出“NO”。
測(cè)試輸入 | 期待的輸出 | 時(shí)間限制 | 內(nèi)存限制 | 額外進(jìn)程 | |
---|---|---|---|---|---|
測(cè)試用例 1 | 以文本方式顯示
| 以文本方式顯示
| 1秒 | 64M | 0 |
C++整體代碼
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;int main(){int n;stack<int> st;while (EOF != scanf("%d", &n)) {st = stack<int>();vector<int> h(n, 0);for (int i = 0; i < n; i++) {scanf("%d", &h[i]);if (st.empty()|| abs(st.top() - h[i]) % 2 == 1) {st.push(h[i]);}else if(abs(st.top()-h[i])%2==0) {st.pop();}}if (st.size()>1) cout << "NO" << endl;else cout << "YES" << endl;}return 0;
}