#40858: C語言解法


jim0908109907@gmail.com (rthrhr)

學校 : 不指定學校
編號 : 254563
來源 : [114.25.143.122]
最後登入時間 :
2024-06-12 01:39:17
m932. 2. 蜜蜂觀察 -- 2024年1月APCS | From: [118.168.82.54] | 發表日期 : 2024-06-16 00:28

#include <stdio.h>

int main() {
    char a[21][21];
    int m,n,k,s[100],o=0;
    for(int i=0;i<100;i++){
        s[i]=0;
    }
    scanf("%d%d%d",&m,&n,&k);
    int x=0,y=m-1;
    for(int i=0;i<m;i++){
        scanf("%s",&a[i]);
    }
    for(int i=0;i<k;i++){
        int z;
        scanf("%d",&z);
        if(z==0 && y>0){
            y=y-1;
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
        else if(z==1 && x<n-1){
            x=x+1;
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
        else if(z==2 && y<m-1 && x<n-1){
            y=y+1;
            x=x+1;
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
        else if(z==3 && y<m-1){
            y=y+1;
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
        else if(z==4 && x>0){
            x=x-1;
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
        else if(z==5 && y>0 && x>0){
            y=y-1;
            x=x-1;
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
        else{
            printf("%c",a[y][x]);
            s[a[y][x]-'A']=s[a[y][x]-'A']+1;
        }
    }
    for(int i=0;i<100;i++){
        if(s[i]!=0){
            o=o+1;
        }
    }
    printf("\n%d",o);
    return 0;
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

o:字母種總數

s[]:每種字母出現次數

z:前進方向

 
ZeroJudge Forum