#38323: C語言,不能用vector嗎?(7ms, 96KB)


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [163.30.63.65]
最後登入時間 :
2024-11-11 10:00:57
k732. 2. 特殊位置 -- 2023年6月APCS | From: [42.74.239.219] | 發表日期 : 2023-11-12 13:54

(7ms, 96KB)標頭檔要用#include<math.h>才能運算絕對值,以及一開始看題目不是很了解,題目的意思是所有小於曼哈頓距離的值相加,才取10的餘數,我也是看了很久才知道是這意思。C++可用vector,改成C就不能,只好使用陣列紀錄特殊位置的座標。

#include <stdio.h>
#include<math.h>
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    int a[n][m],i,j,k,l,s,c=0;
    int d[n*m][2];
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        scanf("%d",&a[i][j]);

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

            for(j=0;j<m;j++)
        {
   s=0;
            for(k=0;k<m;k++)
            {
                for(l=0;l<n;l++)
            {

                if((abs(j-k)+abs(i-l))<=a[i][j])
                    s+=a[l][k];
            }


        }
if(s%10==a[i][j])
            {
                d[c][0]=i;
d[c][1]=j;
                c++;
            }
        }

    }

    printf("%d\n",c);
    for(i=0;i<c;i++)
        printf("%d %d\n",d[i][0],d[i][1]);
    return 0;
}

 
ZeroJudge Forum