SRM332 div2 hard
えらく簡単だった。
0<=xdだけど0
#include <string> #include <vector> using namespace std; class Squares { public: int countSquares(vector <string> field) { int ans=0,h=field[0].size(),w=field.size(),n=55; for(int x1=0;x1<n;x1++) for(int y1=0;y1<n;y1++) for(int xd=0;xd<n;xd++) for(int yd=1;yd<n;yd++) { int x2=x1+xd,y2=y1+yd; int x3=x1+yd,y3=y1-xd; int x4=x1+yd+xd,y4=y1-xd+yd; if(0<=x1 && x1<w && 0<=y1 && y1<h && 0<=x2 && x2<w && 0<=y2 && y2<h && 0<=x3 && x3<w && 0<=y3 && y3<h && 0<=x4 && x4<w && 0<=y4 && y4<h && field[x1][y1]==field[x2][y2] && field[x1][y1]==field[x3][y3] && field[x1][y1]==field[x4][y4]) ans++; } return ans; } };