#40799: C++解


glps1004@gmail.com (Ian)

學校 : 不指定學校
編號 : 272041
來源 : [101.9.186.158]
最後登入時間 :
2024-07-20 16:07:05
h027. 202001_2 矩陣總和 -- 2020年1月APCS | From: [101.8.34.234] | 發表日期 : 2024-06-13 19:56

#include<bits/stdc++.h>
using namespace std;
#define N1 15
#define N2 105
int main()
{
    int s,t,m,n,r,i,j,Asum=0;
    int A[N1][N2],B[N1][N2];
    scanf("%d%d%d%d%d",&s,&t,&n,&m,&r);
    for(i=0;i<s;i++) for(j=0;j<t;j++) scanf("%d",&A[i][j]),Asum+=A[i][j];
    for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&B[i][j]);
    int ans=0,mind=INT_MAX;
    for(i=0;i<n-s+1;i++)
    {
        for(j=0;j<m-t+1;j++)
        {
            int num=0,sum=0;
            for(int k=0;k<s;k++)
            {
                for(int q=0;q<t;q++)
                {
                    if(B[k+i][q+j]!=A[k][q]) num++;
                    sum+=B[k+i][q+j];
                }
            }
            if(num<=r) ans++,mind=min(mind,abs(Asum-sum));
        }
    }
    if(ans==0) printf("0\n-1\n");
    else printf("%d\n%d",ans,mind);
}

 
ZeroJudge Forum