#22313: 這一題有標準答案 所以其他解法可能會出問題 即使答案是對的


liu92112711 ((?))

學校 : 國立新營高級中學
編號 : 113908
來源 : [220.134.142.23]
最後登入時間 :
2023-10-23 16:50:52
f005. Iron Golem | From: [114.33.238.129] | 發表日期 : 2020-08-23 13:44

如果出題者有看到的話 希望可以多增加些答案

#include <stdio.h>

 

int main() {

    int t;

    scanf("%d", &t);

    for(int cas = 0; cas < t; cas++) {

        int ans = 0, an[100] = {};

        char q[101];

        int n;

        scanf("%d", &n);

        scanf("%s", &q);

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

            if(q[i]=='.'&&!f(i, an)) {

                if(i+1<100)

                    ans++, an[i+1] = 1;

            }

        }

        printf("Case %d: ", cas+1);

        printf("%d", ans);

        if(ans)

            printf("(");

        int pt = 0;

        for(int i = 0; i < 100&&pt<ans; i++){

            if(an[i]) {

                printf("%d", i+1);

                if(pt+1<ans)

                    printf(",");

                pt++;

            }

        }

        if(ans)

            printf(")");

        printf("\n");

    }

}

 

int f(int l, int an[]) {

    if(an[l])

        return 1;

    if(l-1>0)

        if(an[l-1])

            return 1;

    if(l+1<100)

        if(an[l+1])

            return 1;

    return 0;

}

以上是我的解法 (C)

 

像者種有標準答案的題目 只能慢慢try看作者要得是哪一種解法 挺煩人的@w@

 
ZeroJudge Forum