【題解】ZeroJudge d424: 00105 – The Skyline Problem

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=d424
【解題想法】數據範圍不大,直接紀錄每個座標位置出現過的最大高度,依題意輸出即可。

#include <iostream>
using namespace std;

int high[10005];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int L, H, R;
    int mn = 10000, mx = 0;
    while (cin >> L >> H >> R){
        mn = min(mn, L);
        mx = max(mx, R);
        for (int i = L; i < R; i++){
            high[i] = max(high[i], H);
        }
    }
    H = -1;
    for (int i = mn; i <=mx; i++){
        if (high[i] != H) {
            cout << i << " " << high[i] << " ";
            H = high[i];
        }
    }
    cout << "\n";
}
分享本文 Share with friends