🍄题目描述
在学习了文本处理后,小 P 对英语书中的 𝑛n 篇文章进行了初步整理。 具体来说,小 P 将所有的英文单词都转化为了整数编号。假设这 𝑛n 篇文章中共出现了 𝑚m 个不同的单词,则把它们从 11 到 𝑚m 进行编号。 这样,每篇文章就简化为了一个整数序列,其中每个数都在 11 到 𝑚m 范围内。
现给出小 P 处理后的 𝑛n 篇文章,对于每个单词 𝑖i(1≤𝑖≤𝑚1≤i≤m),试统计:
- 单词 𝑖i 出现在了多少篇文章中?
- 单词 𝑖i 在全部文章中总共出现了几次?
输入格式
从标准输入读入数据。
输入共 𝑛+1n+1 行。
输入的第一行包含两个正整数 𝑛n 和 𝑚m,分别表示文章篇数和单词编号上限。
输入的第 𝑖+1i+1 行(1≤𝑖≤𝑛1≤i≤n)包含由空格分隔的若干整数, 其中第一个整数 𝑙𝑖li 表示第 𝑖i 篇文章的长度(单词个数); 接下来 𝑙𝑖li 个整数表示对应的整数序列,序列中每个整数均在 11 到 𝑚m 范围内,各对应原文中的一个单词。
输出格式
输出到标准输出。
输出共 𝑚m 行。
第 𝑖i 行(1≤𝑖≤𝑚1≤i≤m)输出由空格分隔的两个整数 𝑥𝑖xi 和 𝑦𝑖yi,表示共有 𝑥𝑖xi 篇文章包含单词 𝑖i,总计出现次数为 𝑦𝑖yi。
🍄AC代码
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int main(){int n,m,k,x;int a[N]={0},b[N]={0};cin>>n>>m;for(int i=0;i<n;i++){cin>>k;int flag[N]={0};for(int j=0;j<k;j++){cin>>x;a[x]++;flag[x]++;}for(int j=1;j<=m;j++){if(flag[j]>0)b[j]++;}}for(int i=1;i<=m;i++){cout<<b[i]<<" "<<a[i]<<endl;}return 0;
}