#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <set>
using namespace std;

int main() {
    string str;
    int n;
    vector<string> load;//总字符串
    vector<int> nums;//存行号
    //vector<char> flag;//存盘符
    vector<string>lu;//存16位路径
    vector<string>chai;//中间变量
    vector<int>result;//最后错误数量
    while (cin >>str>>n) { // 找出行号
       load.push_back(str);
       nums.push_back(n);
    }
    for(int i=0;i<load.size();i++)//找出路径
    {
        istringstream it(load[i]);
        string ch;

        while(getline(it,ch,'\\'))
        {
            chai.push_back(ch);
        }
        int num=chai.size();
        lu.push_back(chai[num-1]);
    }
    for(int i=0;i<nums.size();i++)//更新路径
    {
        if(lu[i].size()>=17)
        {
            lu[i]=lu[i].substr(lu[i].size()-16,lu[i].size()-1);//字符串按下标分割
        }
    }
    //找出相同元素,去解题
    set<string>reguler;
    int len=0;
    for(int i=0;i<100;i++)
        result.push_back(1);
    for(int i=1;i<lu.size();i++)
    {
        int flags=0;
        for(int j=i-1;j>=0;j--)
            { 
                if(lu[i]==lu[j] && nums[i]==nums[j])//发现相同错误
                {
                    lu.erase(lu.begin()+i);
                    nums.erase(nums.begin()+i);
                    result[j]++;
                    flags=1;
                }
            }
        if(flags)
            i--;
    }
    //输出
    if(lu.size()<9)
    {
        for(int i=0;i<lu.size();i++)
        {
            cout<<lu[i]<<" "<<nums[i]<<" "<<result[i]<<endl;
        }
    }
    else
    {
        for(int i=lu.size()-8;i<lu.size();i++)
        {
            cout<<lu[i]<<" "<<nums[i]<<" "<<result[i]<<endl;
        }
    }
}
// 64 位输出请用 printf("%lld")

C++通用方法,没有什么高阶知识,最底层的知识硬磕