Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 344 B - Delimiter | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 47

問題概要

 N 個の整数  A_1, A_2, ..., A_N が、1行に一つずつ  N 行にわたって与えられる。ただし、  N は入力によって与えられない。  A_N, A_{N-1}, ..., A_1 をこの順に出力せよ。

制約

  • 入力は全て整数
  •  1 \leq N \leq 100
  •  1 \leq A_i \leq 10^9 (1 \leq i \leq N - 1)
  •  A_N = 0

考察

入力の整数の数が与えられないという少し変わった問題だが、  A_N = 0 という制約があることに注意。つまり、 0 を入力として受け取った段階で入力は終わりなのである。

ということで、入力値が  0 になるまでwhile文で入力を受け取って適当な配列に格納し、それが終わったらreverseして順に出力すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

#define all(x) (x).begin(), (x).end()
#define rep(i, start, end) for (ll i = (start); i < (ll)(end); i++)

// ======================================== //

int main()
{
    int A = -1;
    int cnt = 0;
    vector<int> v;
    while (A != 0)
    {
        cin >> A;
        v.push_back(A);
        cnt++;
    }

    reverse(all(v));

    for (auto &&i : v)
    {
        cout << i << endl;
    }
}

atcoder.jp

実装時間: 5分以内