#21875: #0: 50% WA (line:5) 您的答案為: 1 2 6 1 0 0 1 1 1 0 正確答案為: 0 0 0 0 0 0 0 0 0 0 #1: 50% WA (line:5) 您的答案為:


twm0970420996@gmail.com (小胖胖胖)

學校 : 不指定學校
編號 : 94884
來源 : [122.116.200.57]
最後登入時間 :
2020-07-13 23:16:38

#include <iostream>

 

using namespace std;

 

int cdefgab[8][10] ={

    0,1,1,0,0,0,0,0,0,0,

    0,1,0,0,0,0,0,0,0,0,

    0,1,1,1,0,0,1,1,1,1,

    0,1,1,1,0,0,1,1,1,0,

    0,1,1,1,0,0,1,1,0,0,

    0,1,1,1,0,0,1,0,0,0,

    0,1,1,1,0,0,0,0,0,0,

    0,0,0,0,0,0,0,0,0,0,

};

int CDEFGAB[7][10]={

    1,1,1,0,0,0,0,0,0,0,

    1,1,0,0,0,0,0,0,0,0,

    0,0,1,0,0,0,0,0,0,0,

    1,1,1,1,0,0,1,1,1,0,

    1,1,1,1,0,0,1,1,0,0,

    1,1,1,1,0,0,1,0,0,0,

    1,1,1,1,0,0,0,0,0,0,

};

int main(){

    int t = 0 ;

    int finger[10] = {0};

    int *p, *lastp = cdefgab[7];

    cin >> t;

    while(t--){

 

        for(int i = 0 ; i < 10 ;i++){

            finger[i] = 0;

        }

        string song = "";

        cin >> song ;

        for(int i = 0 ; i < song.length() ; i++){

            if(song[i] >= 'a' && song[i] <= 'g'){

                p = cdefgab[song[i] - 'a'];

            }

            else if(song[i] >= 'A' && song[i] <= 'G'){

                p = CDEFGAB[song[i] - 'A'];

            }

            for(int j = 0 ; j < 10 ; j++){

                if(p[j] == 1 && ( lastp[j] == 0 || i == 0 )){

                    finger[j]++;

                }

            }

            lastp = p;

        }

        for(int i = 0 ; i < 10 ; i++){

            cout << finger[i] << " ";

        }

        cout << endl;

    }

}

 

#21876: Re:#0: 50% WA (line:5) 您的答案為: 1 2 6 1 0 0 1 1 1 0 正確答案為: 0 0 0 0 0 0 0 0 0 0 #1: 50% WA (line:5) 您的答


twm0970420996@gmail.com (小胖胖胖)

學校 : 不指定學校
編號 : 94884
來源 : [122.116.200.57]
最後登入時間 :
2020-07-13 23:16:38

#include

 

using namespace std;

 

int cdefgab[8][10] ={

    0,1,1,0,0,0,0,0,0,0,

    0,1,0,0,0,0,0,0,0,0,

    0,1,1,1,0,0,1,1,1,1,

    0,1,1,1,0,0,1,1,1,0,

    0,1,1,1,0,0,1,1,0,0,

    0,1,1,1,0,0,1,0,0,0,

    0,1,1,1,0,0,0,0,0,0,

    0,0,0,0,0,0,0,0,0,0,

};

int CDEFGAB[7][10]={

    1,1,1,0,0,0,0,0,0,0,

    1,1,0,0,0,0,0,0,0,0,

    0,0,1,0,0,0,0,0,0,0,

    1,1,1,1,0,0,1,1,1,0,

    1,1,1,1,0,0,1,1,0,0,

    1,1,1,1,0,0,1,0,0,0,

    1,1,1,1,0,0,0,0,0,0,

};

int main(){

    int t = 0 ;

    int finger[10] = {0};

    int *p, *lastp = cdefgab[7];

    cin >> t;

    while(t--){

 

        for(int i = 0 ; i < 10 ;i++){

            finger[i] = 0;

        }

        string song = "";

        cin >> song ;

        for(int i = 0 ; i < song.length() ; i++){

            if(song[i] >= 'a' && song[i] <= 'g'){

                p = cdefgab[song[i] - 'a'];

            }

            else if(song[i] >= 'A' && song[i] <= 'G'){

                p = CDEFGAB[song[i] - 'A'];

            }

            for(int j = 0 ; j < 10 ; j++){

                if(p[j] == 1 && ( lastp[j] == 0 || i == 0 )){

                    finger[j]++;

                }

            }

            lastp = p;

        }

        for(int i = 0 ; i < 10 ; i++){

            cout << finger[i] << " ";

        }

        cout << endl;

    }

}

 

請問是不是有什麼小細節沒有考慮到~?

#21878: Re:#0: 50% WA (line:5) 您的答案為: 1 2 6 1 0 0 1 1 1 0 正確答案為: 0 0 0 0 0 0 0 0 0 0 #1: 50% WA (line:5) 您的答


IanWang20061204 (詭譎)

學校 : 臺北市立建國高級中學
編號 : 95399
來源 : [42.79.136.158]
最後登入時間 :
2025-07-30 17:27:55

#include

 

using namespace std;

 

int cdefgab[8][10] ={

    0,1,1,0,0,0,0,0,0,0,

    0,1,0,0,0,0,0,0,0,0,

    0,1,1,1,0,0,1,1,1,1,

    0,1,1,1,0,0,1,1,1,0,

    0,1,1,1,0,0,1,1,0,0,

    0,1,1,1,0,0,1,0,0,0,

    0,1,1,1,0,0,0,0,0,0,

    0,0,0,0,0,0,0,0,0,0,

};

int CDEFGAB[7][10]={

    1,1,1,0,0,0,0,0,0,0,

    1,1,0,0,0,0,0,0,0,0,

    0,0,1,0,0,0,0,0,0,0,

    1,1,1,1,0,0,1,1,1,0,

    1,1,1,1,0,0,1,1,0,0,

    1,1,1,1,0,0,1,0,0,0,

    1,1,1,1,0,0,0,0,0,0,

};

int main(){

    int t = 0 ;

    int finger[10] = {0};

    int *p, *lastp = cdefgab[7];

    cin >> t;

    while(t--){

 

        for(int i = 0 ; i < 10 ;i++){

            finger[i] = 0;

        }

        string song = "";

        cin >> song ;

        for(int i = 0 ; i < song.length() ; i++){

            if(song[i] >= 'a' && song[i] <= 'g'){

                p = cdefgab[song[i] - 'a'];

            }

            else if(song[i] >= 'A' && song[i] <= 'G'){

                p = CDEFGAB[song[i] - 'A'];

            }

            for(int j = 0 ; j < 10 ; j++){

                if(p[j] == 1 && ( lastp[j] == 0 || i == 0 )){

                    finger[j]++;

                }

            }

            lastp = p;

        }

        for(int i = 0 ; i < 10 ; i++){

            cout << finger[i] << " ";

        }

        cout << endl;

    }

}

 

請問是不是有什麼小細節沒有考慮到~?


有空白行

可以改成getline,或乾脆點string拿掉改成scanf也可以

 

#21887: Re:#0: 50% WA (line:5) 您的答案為: 1 2 6 1 0 0 1 1 1 0 正確答案為: 0 0 0 0 0 0 0 0 0 0 #1: 50% WA (line:5) 您的答


753951852456 (精神小伙不請自來)

學校 : 臺北市私立延平高級中學
編號 : 103367
來源 : [203.72.178.3]
最後登入時間 :
2022-04-13 12:40:32

#include

 

using namespace std;

 

int cdefgab[8][10] ={

    0,1,1,0,0,0,0,0,0,0,

    0,1,0,0,0,0,0,0,0,0,

    0,1,1,1,0,0,1,1,1,1,

    0,1,1,1,0,0,1,1,1,0,

    0,1,1,1,0,0,1,1,0,0,

    0,1,1,1,0,0,1,0,0,0,

    0,1,1,1,0,0,0,0,0,0,

    0,0,0,0,0,0,0,0,0,0,

};

int CDEFGAB[7][10]={

    1,1,1,0,0,0,0,0,0,0,

    1,1,0,0,0,0,0,0,0,0,

    0,0,1,0,0,0,0,0,0,0,

    1,1,1,1,0,0,1,1,1,0,

    1,1,1,1,0,0,1,1,0,0,

    1,1,1,1,0,0,1,0,0,0,

    1,1,1,1,0,0,0,0,0,0,

};

int main(){

    int t = 0 ;

    int finger[10] = {0};

    int *p, *lastp = cdefgab[7];

    cin >> t;

    while(t--){

 

        for(int i = 0 ; i < 10 ;i++){

            finger[i] = 0;

        }

        string song = "";

        cin >> song ;

        for(int i = 0 ; i < song.length() ; i++){

            if(song[i] >= 'a' && song[i] <= 'g'){

                p = cdefgab[song[i] - 'a'];

            }

            else if(song[i] >= 'A' && song[i] <= 'G'){

                p = CDEFGAB[song[i] - 'A'];

            }

            for(int j = 0 ; j < 10 ; j++){

                if(p[j] == 1 && ( lastp[j] == 0 || i == 0 )){

                    finger[j]++;

                }

            }

            lastp = p;

        }

        for(int i = 0 ; i < 10 ; i++){

            cout << finger[i] << " ";

        }

        cout << endl;

    }

}

 

請問是不是有什麼小細節沒有考慮到~?


有空白行

可以改成getline,或乾脆點string拿掉改成scanf也可以

 

簡單

#21921: Re:#0: 50% WA (line:5) 您的答案為: 1 2 6 1 0 0 1 1 1 0 正確答案為: 0 0 0 0 0 0 0 0 0 0 #1: 50% WA (line:5) 您的答


twm0970420996@gmail.com (小胖胖胖)

學校 : 不指定學校
編號 : 94884
來源 : [122.116.200.57]
最後登入時間 :
2020-07-13 23:16:38

#include

 

using namespace std;

 

int cdefgab[8][10] ={

    0,1,1,0,0,0,0,0,0,0,

    0,1,0,0,0,0,0,0,0,0,

    0,1,1,1,0,0,1,1,1,1,

    0,1,1,1,0,0,1,1,1,0,

    0,1,1,1,0,0,1,1,0,0,

    0,1,1,1,0,0,1,0,0,0,

    0,1,1,1,0,0,0,0,0,0,

    0,0,0,0,0,0,0,0,0,0,

};

int CDEFGAB[7][10]={

    1,1,1,0,0,0,0,0,0,0,

    1,1,0,0,0,0,0,0,0,0,

    0,0,1,0,0,0,0,0,0,0,

    1,1,1,1,0,0,1,1,1,0,

    1,1,1,1,0,0,1,1,0,0,

    1,1,1,1,0,0,1,0,0,0,

    1,1,1,1,0,0,0,0,0,0,

};

int main(){

    int t = 0 ;

    int finger[10] = {0};

    int *p, *lastp = cdefgab[7];

    cin >> t;

    while(t--){

 

        for(int i = 0 ; i < 10 ;i++){

            finger[i] = 0;

        }

        string song = "";

        cin >> song ;

        for(int i = 0 ; i < song.length() ; i++){

            if(song[i] >= 'a' && song[i] <= 'g'){

                p = cdefgab[song[i] - 'a'];

            }

            else if(song[i] >= 'A' && song[i] <= 'G'){

                p = CDEFGAB[song[i] - 'A'];

            }

            for(int j = 0 ; j < 10 ; j++){

                if(p[j] == 1 && ( lastp[j] == 0 || i == 0 )){

                    finger[j]++;

                }

            }

            lastp = p;

        }

        for(int i = 0 ; i < 10 ; i++){

            cout << finger[i] << " ";

        }

        cout << endl;

    }

}

 

請問是不是有什麼小細節沒有考慮到~?


有空白行

可以改成getline,或乾脆點string拿掉改成scanf也可以

 

簡單

請問這跟空白行有什麼關西@@

我用uva原文測資是對的

#53718: Re: #0: 50% WA (line:5) 您的答案為: 1 2 6 1 0 0 1 1 1 0 正確答案為: 0 0 0 0 0 0 0 0 0 0 #1: 50% WA (line:5) 您的


pofly (不挖鼻孔有害身心健康)

學校 : 不指定學校
編號 : 322682
來源 : [123.192.228.253]
最後登入時間 :
2025-10-11 19:00:08

 

請問這跟空白行有什麼關西@@

我用uva原文測資是對的



五年了過去了,但我想應該也會有人有一樣的疑惑

這題的空行不能跳過

空行代表的是空字串,意思是「這是一首沒有任何音符的歌」

還是要處理,但因為根本沒有按任何音符,所以輸出的部分理所當然就是一連串的 0 了

 

使用 std::cin 會跳過那一行,導致原本應該讀 t 次測資的程式會少讀幾組測資。

因為 std::cin 讀取失敗時不會報錯......只會改變 std::cin 的狀態標籤

讀取失敗時,對應的變量會維持原樣,不修改其內容