//https://qiita.com/nojima/items/57b9d39d7d73362ac883 参照 # include # include # include # include # include # include # include using namespace std; class Scanner { vector buffer; ssize_t n_written; ssize_t n_read; char *p; public: Scanner(): buffer(1<<26) { do_read(); }//buffer,memory容量 long long read_int() { //桁を積んでRETURNするやつ while(*p<'0') ++p; unsigned ret=0; while(*p>='0') ret=ret*10+(unsigned)(*p++-'0'); return ret; } private: void do_read() { size_t len=0; while(true){ //容量ごとに読み込むやつらしい ssize_t r = read(0, &buffer[len], buffer.size()-len-1); if(r<=0) break; len+=r; } buffer[len]=0;//区切り p= &buffer[0]; } inline int next_char() { ++n_read; if (n_read == n_written) { do_read(); } return current_char(); } inline int current_char() { return (n_read == n_written) ? EOF : buffer[n_read]; } }; int main() { Scanner scanner; int h = scanner.read_int(); int w = scanner.read_int(); unsigned int sum = 0; vector hs(h); for (int i = 0; i < h; ++i) { long long here=0; for (int j = 0; j < w; ++j) { hs[i] += scanner.read_int(); } sum+=hs[i]; } string ans; char num[13]; unsigned int idx=0; for(int i=0;i