This page looks best with JavaScript enabled

第2回ドワンゴからの挑戦状予選B 積み鉛筆

 ·  ☕ 1 min read  ·  ✍️ reud · 👀... views

結構難しかった・・・・

B - 積み鉛筆

テストケースとして与えられるものについて入力内の最大値が右端または左端にないといけない(そうで無い場合は解答が作成出来ない)

これを思いつかないと無理になります。

かなり時間がかかった・・・・

cheers

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <bits/stdc++.h>
#define INF 1e9
using namespace std;

#define REPR(i,n) for(int i=(n); i >= 0; --i)
#define FOR(i, m, n) for(int i = (m); i < (n); ++i)
#define REP(i, n) for(int i=0, i##_len=(n); i<i##_len; ++i)
#define ALL(a)  (a).begin(),(a).end()
#define endl "\n"

template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return true; } return false; }
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return true; } return false; }
typedef long long ll;

void solve() {
    int N;
    cin >> N;
    vector<int> K(N-1),ans(N);
    REP(i,N) cin >> K[i];
    ans[0] = K[0];
    ans[N-1] = K[N-2];
    FOR(i,1,N-1) ans[i] = min(K[i-1],K[i]);
    for(const auto &it: ans) cout << it << " ";
    cout << endl;
}

int main() {
    solve();
    return 0;
}
Share on

reud
WRITTEN BY
reud
Stundent