55 lines
2.5 KiB
C
55 lines
2.5 KiB
C
|
#include <stdio.h>
|
||
|
|
||
|
// // // /
|
||
|
|
||
|
// /// /// /// /// /// /
|
||
|
|
||
|
// /// /// / // /// /// /
|
||
|
// // // // /
|
||
|
// /// // // /// /// / /
|
||
|
// /// // /// // / /
|
||
|
// /// / // /// /// /// /
|
||
|
// // // /
|
||
|
// /// /// /// /// /
|
||
|
// /// /// /// /// // /
|
||
|
// /// /// /// /// /// / /
|
||
|
// / /// /// /// /// /
|
||
|
// / // /// /// /
|
||
|
///////// ///// //////
|
||
|
// /// / // /// /
|
||
|
/////////// /////
|
||
|
// /// /// /// /
|
||
|
//////////////////
|
||
|
/// /// /// /// /
|
||
|
/////////////////
|
||
|
/// //////// ///
|
||
|
// /////// ////
|
||
|
/// // /////
|
||
|
/// ///////
|
||
|
//// ////
|
||
|
///////////
|
||
|
///////
|
||
|
//////
|
||
|
///
|
||
|
char
|
||
|
m[100
|
||
|
#define\
|
||
|
M(a, b) ((\
|
||
|
a)<(b)?(a):(b))
|
||
|
#define D(I,J) {v\
|
||
|
=m[ I][J];if(v!=9&&v>\
|
||
|
p&&!V[I][J])z+=d(I,J);}
|
||
|
][101]={0},V [100][100]={
|
||
|
0},p;int d(int i,int j){int
|
||
|
z=1;char v,p =m[i][j];V[i][j]=1
|
||
|
;if(i )D(i-1,j )if(i<99)D(i+1 ,j)if
|
||
|
(j)D(i,j-1 )if(j<99 )D(i ,j+1)return z;}int
|
||
|
main(){int i,j,k,l ,b,S= 0,t[3]={0}; for
|
||
|
( i=0;i<100 ;i++){scanf("%s" ,(char*)&m[i]);for
|
||
|
(j=0;j<100 ;j++)m [i][j]-='0' ;}for(i=0;i<100
|
||
|
;i++){for (j=0;j<100;j++){p=m[ i][j];if((i&&m[i
|
||
|
-1][j]<=p)||(i<99&&m[i+1][j]<=p)||(j&&m[i][j-1]<=p) ||
|
||
|
(j<99&&m[i][j+1]<=p))continue ;S+=p+1;b=d(i,j);l=M(t[0],
|
||
|
M(t[1 ],t[2]));if(b>l)for (k =0;k<3;k++)if(t[k]==l){t[k]
|
||
|
=b;break;}}}printf("Silver: %d\nGold: %d\n",S,t[0]*t[1]*t[2]);}
|