ZeroJudge G796: 檔案分類 (Files)

題目敘述

每筆測資第一行有一個正整數N,接下來會有N行,每行會有一個字串,代表每個檔案的邊號。如果今天檔案編號的最後三個字元是000~009,這個檔案會被分在0號資料夾,如果是010~019,這個檔案會被分在1號資料夾,以此類推。要求輸出哪些資料夾有存放檔案和這個資料夾中有多少個檔案。


範例輸入 #1

1

000000

範例輸出 #1

0 1


範例輸入 #2

5

232944

123941

201322

234941

231320

範例輸出 #2

32 2

94 3


範例輸入 #3

5

987012

342221

223120

126641

127643

範例輸出 #3

1 1

12 1

22 1

64 2


解題思路

使用Map來存放不同資料夾的檔案數量,輸出時可以用Auto跑Map的For迴圈。

解題程式碼如下 (僅供參考):

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

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    map<int, int>MAP;
    for (int i = 0; i<N; i++)
    {
        string str;
        cin >> str;
        string tmp = "";
        tmp += str[3];
        tmp += str[4];
        MAP[stoi(tmp)]++;
    }
    for (auto it:MAP)
    {
        cout << it.first << " " << it.second << "\n";
    }
}

留言

這個網誌中的熱門文章

ZeroJudge M933: 邏輯電路

ZeroJudge A148: You Cannot Pass?!

ZeroJudge A263: 日期差幾天