L1-020. 帅到没朋友

    xiaoxiao2021-03-25  133

    本题要求:

    当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。

    输入格式:

    输入第一行给出一个正整数N(<=100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(<=1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从0000099999),ID间以空格分隔;之后给出一个正整数M(<=10000),为待查询的人数;随后一行中列出M个待查询的ID,以空格分隔。 注意:没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。虽然有个别自恋狂会自己把自己反复加进朋友圈,但题目保证所有K超过1的朋友圈里都至少有2个不同的人。

    输出格式:

    按输入的顺序输出那些帅到没朋友的人。ID间用1个空格分隔,行的首尾不得有多余空格。如果没有人太帅,则输出“No one is handsome”。 注意:同一个人可以被查询多次,但只输出一次。

    输入样例:

    3 3 11111 22222 55555 2 33333 44444 4 55555 66666 99999 77777 8 55555 44444 10000 88888 22222 11111 23333 88888

    输出样例:

    10000 88888 23333

    解题思路 :

    利用id没有重复性,用数组下标记录id信息,并且储存朋友圈交际个数。 需要注意如下几点: 1. 如果朋友圈里只有1个人,那么这个人就是省略(即为自己) 2. 注意输出没有朋友的人后,将其变成有朋友的人(防止重复输出)。

    代码 :

    #include<iostream> #include<cstring> using namespace std; int toInt(char *str) { int n = 0; int m = 1; int size = strlen(str); for (int i = size - 1; i >= 0; i--) { n += (str[i] - '0') * m; m *= 10; } return n; } int main() { int f[100001] = {0}; int n; cin >> n; for (int i = 0; i < n; i++) { int m = 0; cin >> m; for (int j = 0; j < m; j++) { char t[10]; cin >> t; if (m == 1) { break; } else { f[toInt(t)]++; } } } cin >> n; bool isHas = false; for (int i = 0; i < n; i++) { char t[10]; cin >> t; if (f[toInt(t)] == 0) { if (isHas) { cout << " "; } isHas = true; cout << t ; f[toInt(t)] = 1; } } if (!isHas) { cout << "No one is handsome"; } cout << endl; return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-5787.html

    最新回复(0)