ワロタwwwwwwwww
C++11 から努めて初期化は中括弧で括るようにしてたら、vectorの初期化で何故か要素の個数がおかしい

cin >> columns;
vector<size_t> row {columns,0};

これのsize()が2となってしまう。
rowはcolumns個の0で満たされてる筈だろと怒り狂ってたが、なんのことはない。initializer_listのせいで配列の直接初期化みたいに解釈されてたってわけだwwwwwwwwwwwwwwww

vector<size_t> row(columns,0);
こう書かなきゃいけなかったって罠wwwwwwww

せめて警告だせや・・・