#define 一覧

#define ALL(x) (x).begin(), (x),end()
#define SZ(x) *1 cout << v[i] << " ";    cout << " ]" << endl


//テンプレートセット
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define INF (1 << 30)
#define eps (1e-9)

#define ALL(x) (x).begin(), (x).end()
#define SZ(x) ( (int)( (x).size() ))
#define FOR(i, a, b) for(int i = (a); i < (b); ++i)
#define FORE(i, a, b) for(int i = (a); i <= (b); ++i)
#define REP(i, n) FOR(i, 0, n)
#define REPE(i, n) FORE(i, 0, n)
#define X first
#define Y second
//for dedug
#define DG(x) cout << #x << "= [" << x << "]" << endl
#define DGfor(v) cout << "["; REP(i, SZ(v)) cout << v[i] << " ";    cout << " ]" << endl
#define DGforN cout << "["; REP(i, SZ(v)) cout << v[i] << endl; cout << "]" << endl
 
using namespace std;

typedef pair pii;
typedef pair dot;
typedef long long LL;

class DonutsOnTheGridEasy {
public:
  int calc(vector  grid) {
    

  }
templateを用いる他に、
typedef int Type  とかとしておくとあとでこの行をかえるだけで済むので便利.
STLを使えない状況にあるときに有用かも.

*1:int)((x).size())) #define FOR(i, a, b) for(int i = (a); i < (b); i++) #define FORE(i, a, b) for(int i = (a); i <= (b); ++i) #define REP(i, n) FOR(i, 0, n) #define REPE(i, n) FORE(i, 0, n) #define X first #define Y second //for debug #define DG(x) cout <<#x << " = [ " << x << "]" << endl #define DGfor(v) {cout << "[ "; REP(i, SZ(v