#31228: 請問一下為什麼會RE(我測資有過)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [111.248.248.69]
最後登入時間 :
2024-10-23 21:12:20
a291. nAnB problem | From: [150.116.71.227] | 發表日期 : 2022-07-19 18:39

#include <iostream>

using namespace std;

int main()
{
    int num[4], n;
    while (cin >> num[0] >> num[1] >> num[2] >> num[3] >> n){
        int t[4];
        for (int i=0; i<n; i++){
            int A=0, B=0;
            bool a[]{false, false, false, false}, b[]{false, false, false, false};
            cin >> t[0] >> t[1] >> t[2] >> t[3];
            for (int j=0; j<n; j++){
                if (num[j]==t[j]){
                    A++;
                    a[j]=true;
                }
            }
            for (int k=0; k<n; k++){
                for (int q=0; q<n; q++){
                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                        B++;
                        b[q]=true;
                        break;
                    }
                }
            }
            cout << A << 'A' << B << 'B' << endl;
        }
        
    }

    return 0;
}

 
#31229: Re: 請問一下為什麼會RE(我測資有過)


krameri120 (科科)

學校 : 國立臺南高級工業職業學校
編號 : 102318
來源 : [1.173.159.232]
最後登入時間 :
2024-06-06 10:31:47
a291. nAnB problem | From: [110.26.136.39] | 發表日期 : 2022-07-19 19:04


    int num[4], n;
            for (int k=0; k<n; k++){
                for (int q=0; q<n; q++){

                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                     

你的num[4] 四個大小,題目(第二行有一個整數n,1<=n<=10000)
會超出陣列範圍,不一定只有4筆 ,RE->記憶體overflow 問題

 
#31232: Re: 請問一下為什麼會RE(我測資有過)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [111.248.248.69]
最後登入時間 :
2024-10-23 21:12:20
a291. nAnB problem | From: [150.116.71.227] | 發表日期 : 2022-07-19 21:14


    int num[4], n;
            for (int k=0; k
                for (int q=0; q

                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                     

你的num[4] 四個大小,題目(第二行有一個整數n,1<=n<=10000)
會超出陣列範圍,不一定只有4筆 ,RE->記憶體overflow 問題

歐對欸,沒注意到。

感恩☺️

 
#31235: Re: 請問一下為什麼會RE(我測資有過)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [111.248.248.69]
最後登入時間 :
2024-10-23 21:12:20
a291. nAnB problem | From: [150.116.71.227] | 發表日期 : 2022-07-19 21:40


    int num[4], n;
            for (int k=0; k
                for (int q=0; q

                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                     

你的num[4] 四個大小,題目(第二行有一個整數n,1<=n<=10000)
會超出陣列範圍,不一定只有4筆 ,RE->記憶體overflow 問題

歐對欸,沒注意到。

感恩☺️

欸不對,題幹不是說它的密碼都是四個一組嗎?

我的num是每組輸入的四個密碼

 
#31240: Re: 請問一下為什麼會RE(我測資有過)


krameri120 (科科)

學校 : 國立臺南高級工業職業學校
編號 : 102318
來源 : [1.173.159.232]
最後登入時間 :
2024-06-06 10:31:47
a291. nAnB problem | From: [110.26.136.39] | 發表日期 : 2022-07-19 22:11


    int num[4], n;
            for (int k=0; k
                for (int q=0; q

                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                     

你的num[4] 四個大小,題目(第二行有一個整數n,1<=n<=10000)
會超出陣列範圍,不一定只有4筆 ,RE->記憶體overflow 問題

歐對欸,沒注意到。

感恩☺️

欸不對,題幹不是說它的密碼都是四個一組嗎?

我的num是每組輸入的四個密碼

四個號碼沒錯, for (int q=0; q<n; q++){ 但著個迴圈假設n是10000,你會指定到num[9999]

 
#31244: Re: 請問一下為什麼會RE(我測資有過)


krameri120 (科科)

學校 : 國立臺南高級工業職業學校
編號 : 102318
來源 : [1.173.159.232]
最後登入時間 :
2024-06-06 10:31:47
a291. nAnB problem | From: [110.26.136.39] | 發表日期 : 2022-07-19 22:19


    int num[4], n;
            for (int k=0; k
                for (int q=0; q

                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                     

你的num[4] 四個大小,題目(第二行有一個整數n,1<=n<=10000)
會超出陣列範圍,不一定只有4筆 ,RE->記憶體overflow 問題

歐對欸,沒注意到。

感恩☺️

欸不對,題幹不是說它的密碼都是四個一組嗎?

我的num是每組輸入的四個密碼

四個號碼沒錯, for (int q=0; q

應該說,你的迴圈大小最多只能到4,但你都超出陣列限制使用,所以RE
你設所有陣列最大四個大小空間,然後沒有預想到n筆測資 比如答案是1234 n=100 ,一百筆測資

 
#31251: Re: 請問一下為什麼會RE(我測資有過)


jason096727@gmail.com (Jason Ho)

學校 : 高雄市苓雅區福東國民小學
編號 : 189939
來源 : [111.248.248.69]
最後登入時間 :
2024-10-23 21:12:20
a291. nAnB problem | From: [150.116.71.227] | 發表日期 : 2022-07-20 12:17


    int num[4], n;
            for (int k=0; k
                for (int q=0; q

                    if (t[k]==num[q] && k!=q && a[k]==false && a[q]==false && b[q]==false){
                     

你的num[4] 四個大小,題目(第二行有一個整數n,1<=n<=10000)
會超出陣列範圍,不一定只有4筆 ,RE->記憶體overflow 問題

歐對欸,沒注意到。

感恩☺️

欸不對,題幹不是說它的密碼都是四個一組嗎?

我的num是每組輸入的四個密碼

四個號碼沒錯, for (int q=0; q

應該說,你的迴圈大小最多只能到4,但你都超出陣列限制使用,所以RE
你設所有陣列最大四個大小空間,然後沒有預想到n筆測資 比如答案是1234 n=100 ,一百筆測資

恩我懂了

是我閱讀障礙:(

 
ZeroJudge Forum