結果
| 問題 | No.3677 Global Checksum |
| コンテスト | |
| ユーザー |
sorachandu
|
| 提出日時 | 2026-09-04 23:20:33 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 8,257 bytes |
| 記録 | |
| コンパイル時間 | 2,675 ms |
| コンパイル使用メモリ | 379,940 KB |
| 実行使用メモリ | 9,724 KB |
| 最終ジャッジ日時 | 2026-09-04 23:20:46 |
| 合計ジャッジ時間 | 6,416 ms |
|
ジャッジサーバーID (参考情報) |
judge4_0 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 WA * 1 TLE * 1 -- * 6 |
コンパイルメッセージ
main.cpp: In constructor 'FastRead::FastRead(FILE*)':
main.cpp:86:31: warning: member 'FastRead::buf_' is used uninitialized [-Wuninitialized]
86 | : stream_(stream), begin_(buf_.data()), end_(begin_ + BUF_SIZE), ptr_(end_) {
| ^~~~
main.cpp: In constructor 'FastWrite::FastWrite(FILE*)':
main.cpp:221:31: warning: member 'FastWrite::buf_' is used uninitialized [-Wuninitialized]
221 | : stream_(stream), begin_(buf_.data()), end_(begin_ + BUF_SIZE), ptr_(begin_) {}
| ^~~~
ソースコード
// https://github.com/drken1215/algorithm/blob/master/Others/fast_io.cpp
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
using namespace std;
//
// Fast IO
//
// references:
// maspy: [Library Checker] Many A + B
// https://maspypy.com/library-checker-many-a-b
//
// Al.Cash: Fast and furious C++ I/O
// https://codeforces.com/blog/entry/45835
//
// verified:
// Yosupo Library Checker - Many A + B
// https://judge.yosupo.jp/problem/many_aplusb
//
static constexpr int BUF_SIZE = 1 << 17;
struct FastRead {
private:
FILE *stream_;
array<char, BUF_SIZE> buf_;
char *begin_, *end_, *ptr_;
// reader
void skip_space() {
while (*ptr_ <= ' ') ++ptr_;
}
template<int N = 0> 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<typename T> void parse(T &x) {
common_type_t<T, uint64_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<T>(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<unsigned_integral T> void operator () (T &x) {
skip_space();
read<64>();
parse(x);
}
template<signed_integral T> void operator () (T &x) {
skip_space();
read<64>();
make_unsigned_t<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<class... Ts> requires(sizeof...(Ts) != 1) void operator () (Ts&... xs) {
((*this)(xs), ...);
}
template<class T> FastRead& operator >> (T &x) { (*this)(x); return *this; }
};
class FastWrite {
private:
FILE *stream_;
array<char, BUF_SIZE> buf_;
char *begin_, *end_, *ptr_;
// preparation
template <class T> static constexpr int DIGITS = numeric_limits<T>::digits10 + 1;
template <class T> static constexpr auto POW10 = [] {
array<T, DIGITS<T>> ret;
ret[0] = 1;
for (int i = 1; i < DIGITS<T>; ++i) {
ret[i] = 10 * ret[i - 1];
}
return ret;
} ();
static constexpr auto LUT = [] {
array<char, 40000> 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<int N = BUF_SIZE> void flush() {
if (end_ - ptr_ <= N) {
fwrite(begin_, 1, ptr_ - begin_, stream_);
ptr_ = begin_;
}
}
// writer
template<int N = 4> void le4(uint64_t x) {
if constexpr (1 < N) {
if (x < POW10<uint64_t>[N - 1]) {
le4<N - 1>(x);
return;
}
}
ptr_ = copy_n(&LUT[x * 4 + (4 - N)], N, ptr_);
}
template<int N> void w4(uint64_t x) {
if constexpr (0 < N) {
ptr_ = copy_n(&LUT[x / POW10<uint64_t>[N - 4] * 4], 4, ptr_);
w4<N - 4>(x % POW10<uint64_t>[N - 4]);
}
}
template<int N> void write(uint64_t x) {
if constexpr (N < DIGITS<uint64_t>) {
if (POW10<uint64_t>[N] <= x) {
write<N + 4>(x);
return;
}
}
le4(x / POW10<uint64_t>[N - 4]);
w4<N - 4>(x % POW10<uint64_t>[N - 4]);
}
template<typename T> void write(T x) {
write<4>(x);
}
void write(__uint128_t x) {
if (x < POW10<__uint128_t>[16]) {
write(static_cast<uint64_t>(x));
} else if (x < POW10<__uint128_t>[32]) {
write(static_cast<uint64_t>(x / POW10<__uint128_t>[16]));
w4<16>(static_cast<uint64_t>(x % POW10<__uint128_t>[16]));
} else {
write(static_cast<uint64_t>(x / POW10<__uint128_t>[32]));
x %= POW10<__uint128_t>[32];
w4<16>(static_cast<uint64_t>(x / POW10<__uint128_t>[16]));
w4<16>(static_cast<uint64_t>(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<unsigned_integral T> void operator () (T x) {
flush<DIGITS<T>>();
write(x);
}
template<signed_integral T> void operator () (T x) {
flush<1 + DIGITS<T>>();
using U = make_unsigned_t<T>;
const U u = x;
if (x < 0) {
*ptr_++ = '-';
write(static_cast<U>(-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 <char End = '\n', char Sep = ' ', class T, class... Ts>
void ln(T&& x, Ts&&... xs) {
(*this)(std::forward<T>(x));
if constexpr (sizeof...(Ts) == 0) {
*ptr_++ = End;
} else {
*ptr_++ = Sep;
ln<End, Sep>(std::forward<Ts>(xs)...);
}
}
template<class T> FastWrite& operator << (T x) { (*this)(x); return *this; }
};
int main(){
FastRead Read;
FastWrite Write;
int H,W;
Read(H,W);
unsigned int S[1000001];
unsigned int T{};
for(int i=0;i<H;i++){
for(int j=0;j<W;j++){
unsigned int a;
Read(a);
S[i]+=a;
}
T+=S[i];
}
for(int i=0;i<H;i++){
Write.ln(T+S[i]);
}
}
sorachandu