洛谷 P2038 无线网络发射器选址

P2038 无线网络发射器选址

注意边界是否小于0

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int d,n,num[1000][1000],ans[1000][1000],tot,cnt,maxx;
 4 int main()
 5 {
 6     scanf("%d",&d);
 7     scanf("%d",&n);
 8     memset(num,0,sizeof(num));
 9     memset(ans,0,sizeof(ans));
10     for(int i=1;i<=n;i++)
11     {
12         int x,y,z;
13         scanf("%d%d%d",&x,&y,&z);
14         num[x][y]=z;
15     }
16     for(int i=0;i<=128;i++)
17         for(int j=0;j<=128;j++)
18         {            
19             if(i-d>=0&&j-d>=0)
20             for(int k=i-d;k<=i+d;k++)
21                 for(int l=j-d;l<=j+d;l++)    
22                     ans[i][j]+=num[k][l];
23             else{
24                 if(i-d<0&&j-d>=0)
25                     for(int k=0;k<=i+d;k++)
26                         for(int l=j-d;l<=j+d;l++)
27                             ans[i][j]+=num[k][l];
28                 if(i-d>=0&&j-d<0)
29                     for(int k=i-d;k<=i+d;k++)
30                         for(int l=0;l<=j+d;l++)
31                             ans[i][j]+=num[k][l];
32                 if(i-d<0&&j-d<0)
33                     for(int k=0;k<=i+d;k++)
34                         for(int l=0;l<=j+d;l++)
35                             ans[i][j]+=num[k][l];
36                 
37             }    
38             maxx=max(ans[i][j],maxx);
39         }
40     for(int i=0;i<=128;i++)
41         for(int j=0;j<=128;j++)
42             if(ans[i][j]==maxx) tot++;
43     printf("%d %d",tot,maxx);
44     
45 }
View Code

 

posted @ 2017-09-11 19:32  Alex丶Baker  阅读(158)  评论(1编辑  收藏  举报