TopCoder

User's AC Ratio

100.0% (1/1)

Submission's AC Ratio

25.0% (2/8)

Tags

Description

芽芽最近剛學會怎麼實作 vector(也就是「神祕的動態陣列」),他迫不及待地想要在 OJ 上面嘗試看看,但是在茫茫題海當中找題目實在太麻煩,於是芽芽決定出一題簡單的題目,內容如下:

題目會給很多很多的數字,然後要你把每個數字讀進來之後把它們反過來輸出。
也就是說,當題目給你 1 2 3,你就要回答 3 2 1。

很有趣對吧?
芽芽心想這應該很簡單,沒想到現在卻卡關了 QwQ
於是他找上了同班的你,希望你可以告訴他該怎麼做。當然,芽芽也不是沒有思考過就來求答案的,他已經做好了一個基本的 vector 架構,接下來你只需要協助他完成這個架構就可以了!

程式架構如下:

#include <iostream>
using namespace std;

class vector {
public:
    vector() {
        buffer = new int[1];
        capacity = 1;
        size = 0;
    }

    // push one item into vector's back
    void push_back(int item);

    // pop one item from vector's back
    void pop_back();

    // return whether the size of vector is zero
    bool empty();

    // return a pointer points to vector's last item
    int last();

private:
    int* buffer;
    int  capacity;
    int  size;
};

// 你的 code 會放在這裡

int main() {
    vector v;
    int n;
    while (cin >> n) {
        v.push_back(n);
    }
    while (!v.empty()) {
        cout << v.last();
        v.pop_back();
        if (!v.empty()) cout << " ";
    }
    return 0;
}

Input Format

  • 輸入一行包含多個數字,每個數字之間以空格分隔,且皆在 int 範圍內。

  • 數字的總量不會超過 $10 ^ 6$。

輸入的部分芽芽已經處理好了,不需擔心。

Output Format

  • 輸出一行,將輸入的數字倒過來輸出,每個數字之間以空格分隔。

輸出的部分芽芽也已經處理好了,不需擔心。

Sample Input 1

1 2 3 4 5 6

Sample Output 1

6 5 4 3 2 1

Hints

要定義的函式就像下面這樣:

#include "lib0609.h"
bool vector::empty() {
    // 開始實作 empty
}

依此類推,完成 push_back、pop_back、empty、last 四個成員函式即可。

Problem Source

NEOJ Problem 1146

Subtasks

No. Testdata Range Constraints Score
1 0~9 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1
1 1000 524288 65536 1
2 1000 524288 65536 1
3 1000 524288 65536 1
4 1000 524288 65536 1
5 1000 524288 65536 1
6 1000 524288 65536 1
7 1000 524288 65536 1
8 1000 524288 65536 1
9 1000 524288 65536 1