純ブログ

ちょっとプログラミングしてる人のブログです。

競プロ日記: AtCoder Beginner Contest 037

AtCoder Beginner Contest 037 に参加しました。

結果

f:id:nahcnuj:20160507231926p:plain

解答

A

 {\frac{C}{\min\{A, B\}}} を出力。

ソースコード (C++14):

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    cout << c/min(a,b) << endl;
    return 0;
}

abc037.contest.atcoder.jp

B

愚直にシミュレーション。

ソースコード (C++14):

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, q, l, r, t;
    cin >> n >> q;
    vector<int> a(n,0);
    for (; q > 0; --q) {
        cin >> l >> r >> t;
        for (int i = l-1; i < r; ++i) a[i] = t;
    }
    for (auto&& x : a) cout << x << endl;
    return 0;
}

abc037.contest.atcoder.jp

C

普通に計算する。(尺取り法)

ソースコード (C++14):

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n,k;
    cin >> n >> k;
    vector<int> a;
    for (int i = 0; i < n; ++i) {
        int x;
        cin >> x;
        a.push_back(x);
    }
    long long int s = 0;
    for (int i = 0; i < k; ++i) s += a[i];
    long long int S = s;
    for (int i = 1; i <= n - k; ++i) S += (s += -a[i-1] + a[i+k-1]);
    cout << S << endl;
    return 0;
}

abc037.contest.atcoder.jp


以下はコンテスト後に AC。

D

単純なメモ化再帰だったんだなぁ。(メモするときの mod を忘れて 2 WA してしまった)

abc037.contest.atcoder.jp