SRM 559 div2
SRM 558 div2に参加しました
easyは解けた
med はDPで解けそうだなーと思いつつ実装間に合わなかった。
結果は 843 -> 879 (+36)
緑にあと2歩ぐらい届かず。
次こそ、緑になりたい。
#include <cstdio> #include <cstring> #include <string> #include <vector> #include <queue> #include <set> #include <algorithm> using namespace std; class SurroundingGameEasy{ public: int score(vector <string> c, vector <string> bf, vector <string> stn){ int h, w; h = c.size(); w = c[0].length(); int stone[h+2][w+2]; for(int i=0; i<h+2; i++)for(int j=0; j<w+2; j++){ stone[i][j] = 1; } for(int i=0;i<h;i++)for(int j=0; j<w; j++){ stone[i+1][j+1] = (stn[i][j]=='o')?1:0; } int ans = 0; for(int i=1; i<h+1; i++)for(int j=1; j<w+1; j++){ if(stone[i][j] == 1){ ans += bf[i-1][j-1] - c[i-1][j-1]; }else{ if(stone[i-1][j] && stone[i+1][j] && stone[i][j+1] && stone[i][j-1]) { ans += bf[i-1][j-1] - '0'; } } } return ans; } };