#36080: 我自己測是對的,放上來卻是錯的


okily961226@gmail.com (歐科利)

學校 : 不指定學校
編號 : 234435
來源 : [114.32.106.234]
最後登入時間 :
2023-09-16 20:32:34
c291. APCS 2017-0304-2小群體 -- 2017年3月APCS | From: [220.141.165.17] | 發表日期 : 2023-07-04 20:23

#include<iostream>
#include<cstdlib>
using namespace std;
int main (){
    int n,f,sum,num=0;
    cin >> n;
    int friends[n-1],flag[n-1];
    for (int j=0;j<n;j++){
        cin >> f;
        friends[j]=f;
    }
    for (int j=0;j<n;j++){
        flag[j]=0;
    }
    for (int i=0;i<n;i++){
        num=i;
        if(flag[num]==0){
            while(flag[num]!=1){
                flag[num]=1;
                num=friends[num];
                if (flag[num]==1){
                    sum++;
                }
            }
        }
    }
    cout << sum;
    return 0;
}

 
#36085: Re: 我自己測是對的,放上來卻是錯的


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
c291. APCS 2017-0304-2小群體 -- 2017年3月APCS | From: [118.160.196.208] | 發表日期 : 2023-07-04 23:11

#include
#include
using namespace std;
int main (){
    int n,f,sum,num=0;
    cin >> n;
    int friends[n-1],flag[n-1];
    for (int j=0;j
        cin >> f;
        friends[j]=f;
    }
    for (int j=0;j
        flag[j]=0;
    }
    for (int i=0;i
        num=i;
        if(flag[num]==0){
            while(flag[num]!=1){
                flag[num]=1;
                num=friends[num];
                if (flag[num]==1){
                    sum++;
                }
            }
        }
    }
    cout << sum;
    return 0;
}


我怕被質疑貼程式碼,所以傳私人訊息給你了

 
ZeroJudge Forum