#40854: C語言解法


jim0908109907@gmail.com (rthrhr)

學校 : 不指定學校
編號 : 254563
來源 : [114.25.143.122]
最後登入時間 :
2024-06-12 01:39:17
m371. 2. 卡牌遊戲 -- 2023年10月APCS | From: [118.168.82.54] | 發表日期 : 2024-06-15 22:59

#include <stdio.h>

int main() {
    int a[20][40],n,m,s=0;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(int p=1;p<=n*m;p++){
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(a[i][j]!=-1){
                int l=1,r=1,u=1,d=1;
                    while(a[i][j+r]==-1 && j+r<m){
                        r=r+1;
                    }
                    while(a[i][j-l]==-1 && j-l>0){
                        l=l+1;
                    }
                    while(a[i-u][j]==-1 && i-u>0){
                        u=u+1;
                    }
                    while(a[i+d][j]==-1 && i+d<n){
                        d=d+1;
                    }
                    if(a[i][j]==a[i][j+r] && j+r<m){
                        s=s+a[i][j];
                        a[i][j]=-1;
                        a[i][j+r]=-1;
                        continue;
                    }
                    if(a[i][j]==a[i][j-l] && j-l>0){
                        s=s+a[i][j];
                        a[i][j]=-1;
                        a[i][j-l]=-1;
                        continue;
                    }
                    if(a[i][j]==a[i-u][j] && i-u>0){
                        s=s+a[i][j];
                        a[i][j]=-1;
                        a[i-u][j]=-1;
                        continue;
                    }
                    if(a[i][j]==a[i+d][j] && i+d<n){
                        s=s+a[i][j];
                        a[i][j]=-1;
                        a[i+d][j]=-1;
                        continue;
                    }
                }
            }
        }
    }
    printf("%d",s);
    return 0;
}

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

s:總和

r:向右比對

l:向左比對

u:向上比對

d:向下比對

 
ZeroJudge Forum