時間限制
200 ms
記憶體限制
65536 kB
代碼長度限制
8000 B
判題程式
Standard
作者
陳越
當芸芸衆生忙着在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。
輸入格式:
輸入第一行給出一個正整數N(<=100),是已知朋友圈的個數;随後N行,每行首先給出一個正整數K(<=1000),為朋友圈中的人數,然後列出一個朋友圈内的所有人——為友善起見,每人對應一個ID号,為5位數字(從00000到99999),ID間以空格分隔;之後給出一個正整數 M(<=10000),為待查詢的人數;随後一行中列出M個待查詢的ID,以空格分隔。
注意:沒有朋友的人可以是根本沒安裝“朋友圈”,也可以是隻有自己一個人在朋友圈的人。雖然有個别自戀狂會自己把自己反複加進朋友圈,但題目保證所有K超過1的朋友圈裡都至少有2個不同的人。
輸出格式:
按輸入的順序輸出那些帥到沒朋友的人。ID間用1個空格分隔,行的首尾不得有多餘空格。如果沒有人太帥,則輸出“No one is handsome”。
注意:同一個人可以被查詢多次,但隻輸出一次。
輸入樣例1:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
8
55555 44444 10000 88888 22222 11111 23333 88888
輸出樣例1:
10000 88888 23333
輸入樣例2:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
4
55555 44444 22222 11111
輸出樣例2:
No one is handsome
//經過修改和别人的代碼很像了,但是就是别人的比較好,我要繼續努力
#include<stdio.h>
#include<stdio.h>
int ID[100000] = {0 };
int main(){
int N, i, j;//N是朋友圈個數
int n;//朋友圈個數最多為100,這裡不用記錄,換方法了!
int Wait[10000];//等待查詢的ID;
int id;//臨時存儲ID
int WaitNumber;
int WaitJoin[1000];
int WaitID[10000];
scanf("%d", &N);
for (i =0; i<N; i++){//記錄ID
scanf("%d", &n);
for (j =0; j<n; j++){
scanf("%d", &id);
ID[id] +=n;
}
}
scanf("%d", &WaitNumber);
int flag =0;
for (i =0; i < WaitNumber; i++){
scanf("%d", &id);
if (ID[id]==0||ID[id]==1){
if(flag!=0)
printf(" ");
printf("%05d", id);
ID[id] = -1;
flag = 1;
}
}
if (flag ==0){
printf("No one is handsome");
}
return0;
}
·
貼上我上次的代碼
#include<stdio.h>
int ID[100000] = {0 };
int unique(int Arr[],int len){
int length = len;
int i, j;
for (i =1; i < len; i++){
for (j = i -1; j >= 0; j--){
if (Arr[i] == Arr[j] && Arr[i] != -1){
Arr[i] = -1;
length--;
}
}
}
return length;
}
int Print(int Num){
int Number = Num;
int len =1;
while (Number /10 != 0){
Number /= 10;
len++;
}
return len;
}
int Jundge(int WaitJoin[],int n){
int i, j;
for (i =0; i < n; i++){
if (ID[WaitJoin[i]] ==0)
for (j = i +1; j < n; j++){
if (WaitJoin[i] != WaitJoin[j]){
ID[WaitJoin[i]] = 1;
ID[WaitJoin[j]] = 1;
}
}
}
}
int main(){
int N, i, j;//N是朋友圈個數
int n;//朋友圈個數最多為100,這裡不用記錄,換方法了!
int Wait[10000];//等待查詢的ID;
int id;//臨時存儲ID
int WaitNumber;
int WaitJoin[1000];
int WaitID[10000];
scanf("%d", &N);
for (i =0; i<N; i++){//記錄ID
scanf("%d", &n);
for (j =0; j<n; j++){
scanf("%d", &WaitJoin[j]);
}
Jundge(WaitJoin, n);
}
scanf("%d", &WaitNumber);
j = 0;
for (i =0; i < WaitNumber; i++){
scanf("%d", &id);
if (ID[id] !=1){
Wait[j] = id;
j++;
}
}
int flag =0;
for (i =0; i < j; i++){
if (ID[Wait[i]] ==0){
if (flag !=0)
printf(" ");
printf("%05d", Wait[i]);
ID[Wait[i]] = -1;
flag = 1;
}
}
//數組去重複
if (flag ==0){
printf("No one is handsome");
}
printf("\n");
return0;
}