初探結構體:班級通訊錄

0.5s 256M

你接下了班上的資訊股長,第一份差事是做一份電子通訊錄:每位同學有姓名、座號、電話三筆資料。

請定義一個結構體 student,把一位同學的三筆資料綁成一包。成員的名稱與型態都必須完全一樣:

成員 型態 意義
name string 姓名(小寫英文字母)
seat int 座號
phone string 電話(恰 \(10\) 個數字,可能以 0 開頭)

你只需要寫這個結構體的定義,不用寫 main、不用 #include 任何東西——評測程式會自動在你的程式最上方加上這題需要的標頭(<string>)與 using namespace std;,要用其他標頭自己再 #include 即可。想把含有 main 的完整程式貼上來測試也可以,評測時會忽略你的 main。

可以直接複製下面的骨架來改:

struct student {
    // 在這裡宣告三個成員
};

評測程式會做的事

評測程式會 #include 你的程式,然後:

  1. 讀入 \(N\),宣告 vector<student> a(N),把每位同學的資料依序讀進 a[i].name、a[i].seat、a[i].phone。
  2. 用「整包指派」把名單前後對調:student tmp = a[i]; a[i] = a[N-1-i]; a[N-1-i] = tmp;。
  3. 依對調後的順序,每位同學印一行 座號 姓名 電話。

也就是說,只要你的結構體符合規格,輸出就是輸入名單倒過來印。若不符合規格,編譯訊息的第一行會告訴你缺了什麼,例如 [檢查] struct student 缺少成員 seat。

輸入格式

(這是評測程式讀的輸入。)第一行有一個整數 \(N\)。接下來 \(N\) 行,每行依序是一位同學的姓名、座號、電話,以一個空白分隔。

限制

  • \(1 \le N \le 1000\)
  • 姓名由 \(1\) 到 \(10\) 個小寫英文字母組成
  • \(1 \le\) 座號 \(\le 1000\)
  • 電話恰為 \(10\) 個數字(0 到 9),可能以 0 開頭

輸出格式

輸出 \(N\) 行,依名單倒過來的順序,每行 座號 姓名 電話,以一個空白分隔。

範例輸入 1

3
amy 3 0912345678
bob 7 0987654321
cathy 1 0900000000

範例輸出 1

1 cathy 0900000000
7 bob 0987654321
3 amy 0912345678

範例解釋 1

名單倒過來印。注意 cathy 的電話以 0 開頭——電話若用 int 存,開頭的 0 會消失,所以規格要求用 string。

題目頁說明

快速鍵

主要功能

  • 範例測試 — 執行題目附帶的範例測資並自動比對預期輸出。
  • 自訂測試 — 自己貼 stdin 執行程式。可勾選「與預期輸出比對 (diff)」做行對行比對。
  • 模板 — 貼上你在個人資料設定的預設程式碼模板。
  • 協作 — 與其他同學共筆編輯這題的程式碼。
  • 自動草稿 — 編輯器內容每 1.5 秒自動存到瀏覽器(per 帳號 / 題目 / 語言)。
  • 提交 — 把程式碼交給 judge 評測,回傳 AC / WA / TLE 等結果。

限制

  • 程式碼最多 65,536 字元
  • 自訂測試 stdin 與預期輸出各最多 1 MB (約 100 萬字元)
  • 自訂測試與範例測試共用一個沙箱,每人約 3 秒 1 次 (範例測試 1 秒 1 次)
  • 自訂測試與範例測試都有 15 秒 牆鐘上限(正式評測仍依題目原本時限)
  • 互動題不提供自訂測試(無法模擬與 judge 互動)。
  • 提交評測本身沒有 rate limit,但同題短時間內多次提交會被視為刷分。