1. 程式人生 > >帥到沒朋友的人-水題

帥到沒朋友的人-水題

時間限制

200 ms 
記憶體限制 
65536 kB 
程式碼長度限制 
8000 B 
判題程式 
Standard 
作者陳越當芸芸眾生忙著在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。輸入格式:輸入第一行給出一個正整數N<=100),是已知朋友圈的個數;隨後N行,每行首先給出一個正整數K<=1000),為朋友圈中的人數,然後列出一個朋友圈內的所有人——為方便起見,每人對應一個ID號,為5位數字(從0000099999),ID間以空格分隔;之後給出一個正整數 M<=10000),為待查詢的人數;隨後一行中列出M個待查詢的ID,以空格分隔。注意:沒有朋友的人可以是根本沒安裝

朋友圈,也可以是隻有自己一個人在朋友圈的人。雖然有個別自戀狂會自己把自己反覆加進朋友圈,但題目保證所有K超過1的朋友圈裡都至少有2個不同的人。輸出格式:按輸入的順序輸出那些帥到沒朋友的人。ID間用1個空格分隔,行的首尾不得有多餘空格。如果沒有人太帥,則輸出“No one is handsome”注意:同一個人可以被查詢多次,但只輸出一次。輸入樣例1 

3 11111 22222 55555 
2 33333 44444 
4 55555 66666 99999 77777 

55555 44444 10000 88888 22222 11111 23333 88888 
輸出樣例1
 
10000 88888 23333 
輸入樣例2 

3 11111 22222 55555 
2 33333 44444 
4 55555 66666 99999 77777 

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;
}