//ジャッジさん頑張ってください #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #include using namespace std; static constexpr int BUF_SIZE = 1 << 17; struct FastRead { private: FILE *stream_; array buf_; char *begin_, *end_, *ptr_; // reader void skip_space() { while (*ptr_ <= ' ') ++ptr_; } template void read() { if (const auto n = end_ - ptr_; n <= N) { ignore = fread(copy_n(ptr_, n, begin_), 1, BUF_SIZE - n, stream_); ptr_ = begin_; } } // parser template void parse(T &x) { common_type_t x2 = 0; while (true) { uint64_t v; memcpy(&v, ptr_, 8); if ((v -= 0x3030303030303030) & 0x8080808080808080) break; v = (v * 10 + (v >> 8)) & 0xff00ff00ff00ff; v = (v * 100 + (v >> 16)) & 0xffff0000ffff; v = (v * 10000 + (v >> 32)) & 0xffffffff; x2 = 100000000 * x2 + v; ptr_ += 8; } while (true) { uint32_t v; memcpy(&v, ptr_, 4); if ((v -= 0x30303030) & 0x80808080) break; v = (v * 10 + (v >> 8)) & 0xff00ff; v = (v * 100 + (v >> 16)) & 0xffff; x2 = 10000 * x2 + v; ptr_ += 4; break; } while (true) { uint16_t v; memcpy(&v, ptr_, 2); if ((v -= 0x3030) & 0x8080) break; v = (v * 10 + (v >> 8)) & 0xff; x2 = 100 * x2 + v; ptr_ += 2; break; } if (' ' < *ptr_) { x2 *= 10; x2 += *ptr_++ - '0'; } ++ptr_; x = static_cast(x2); } public: // constructor FastRead() : FastRead(stdin) {} explicit FastRead(const filesystem::path& p) : FastRead(fopen(p.c_str(), "r")) {} explicit FastRead(FILE *stream) : stream_(stream), begin_(buf_.data()), end_(begin_ + BUF_SIZE), ptr_(end_) { read(); } ~FastRead() { if (stream_ != stdin) fclose(stream_); } FastRead(const FastRead&) = delete; FastRead &operator = (const FastRead&) = delete; // operators template void operator () (T &x) { skip_space(); read<64>(); parse(x); } template void operator () (T &x) { skip_space(); read<64>(); make_unsigned_t u; if (*ptr_ == '-') { ++ptr_; parse(u); u = -u; } else { parse(u); } x = u; } void operator () (char &x) { skip_space(); read<64>(); x = *ptr_; ++ptr_; } void operator () (string &x) { x = ""; skip_space(); read<64>(); while (*ptr_ > ' ' && *ptr_ != '\0') { x.push_back(*ptr_); ++ptr_; } ++ptr_; } template requires(sizeof...(Ts) != 1) void operator () (Ts&... xs) { ((*this)(xs), ...); } template FastRead& operator >> (T &x) { (*this)(x); return *this; } }; class FastWrite { private: FILE *stream_; array buf_; char *begin_, *end_, *ptr_; // preparation template static constexpr int DIGITS = numeric_limits::digits10 + 1; template static constexpr auto POW10 = [] { array> ret; ret[0] = 1; for (int i = 1; i < DIGITS; ++i) { ret[i] = 10 * ret[i - 1]; } return ret; } (); static constexpr auto LUT = [] { array res; char* p = res.data(); char a = '0', b = '0', c = '0', d = '0'; do { *p++ = a, *p++ = b, *p++ = c, *p++ = d; } while (d++ < '9' || (d = '0', c++ < '9' || (c = '0', b++ < '9' || (b = '0', a++ < '9')))); return res; } (); // flush template void flush() { if (end_ - ptr_ <= N) { fwrite(begin_, 1, ptr_ - begin_, stream_); ptr_ = begin_; } } // writer template void le4(uint64_t x) { if constexpr (1 < N) { if (x < POW10[N - 1]) { le4(x); return; } } ptr_ = copy_n(&LUT[x * 4 + (4 - N)], N, ptr_); } template void w4(uint64_t x) { if constexpr (0 < N) { ptr_ = copy_n(&LUT[x / POW10[N - 4] * 4], 4, ptr_); w4(x % POW10[N - 4]); } } template void write(uint64_t x) { if constexpr (N < DIGITS) { if (POW10[N] <= x) { write(x); return; } } le4(x / POW10[N - 4]); w4(x % POW10[N - 4]); } template void write(T x) { write<4>(x); } void write(__uint128_t x) { if (x < POW10<__uint128_t>[16]) { write(static_cast(x)); } else if (x < POW10<__uint128_t>[32]) { write(static_cast(x / POW10<__uint128_t>[16])); w4<16>(static_cast(x % POW10<__uint128_t>[16])); } else { write(static_cast(x / POW10<__uint128_t>[32])); x %= POW10<__uint128_t>[32]; w4<16>(static_cast(x / POW10<__uint128_t>[16])); w4<16>(static_cast(x % POW10<__uint128_t>[16])); } } public: // constructor FastWrite() : FastWrite(stdout) {} explicit FastWrite(const filesystem::path& p) : FastWrite(fopen(p.c_str(), "w")) {} explicit FastWrite(FILE* stream) : stream_(stream), begin_(buf_.data()), end_(begin_ + BUF_SIZE), ptr_(begin_) {} ~FastWrite() { flush(); if (stream_ != stdout) { fclose(stream_); } } FastWrite(const FastWrite&) = delete; FastWrite& operator = (const FastWrite&) = delete; // operators template void operator () (T x) { flush>(); write(x); } template void operator () (T x) { flush<1 + DIGITS>(); using U = make_unsigned_t; const U u = x; if (x < 0) { *ptr_++ = '-'; write(static_cast(-u)); } else { write(u); } } void operator () (char c) { flush<1>(); *ptr_++ = c; } void operator () (string_view s) { while (!s.empty()) { flush<0>(); const auto n = min(ssize(s), end_ - ptr_); if (n == BUF_SIZE) { fwrite(s.data(), 1, BUF_SIZE, stream_); } else { ptr_ = copy_n(s.data(), n, ptr_); } s.remove_prefix(n); } flush<0>(); } template void ln(T&& x, Ts&&... xs) { (*this)(std::forward(x)); if constexpr (sizeof...(Ts) == 0) { *ptr_++ = End; } else { *ptr_++ = Sep; ln(std::forward(xs)...); } } template FastWrite& operator << (T x) { (*this)(x); return *this; } }; //------------------------------// // Examples //------------------------------// unsigned int s[1000000]; void solve(){ FastRead Read; FastWrite Write; int h,w; Read(h,w); int v; unsigned int t = 0; for (int i = 0; i < h; ++h) { for(int j = 0;j < w;++w){ Read(v); s[i] += v; } t += s[i]; } for (int i = 0; i < h; ++h){ Write.ln(s[i]+t); } } int main(){ solve(); }