QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#768388#9465. 基础 01 练习题peaneval_kala15 901ms456304kbC++2312.4kb2024-11-21 09:59:462024-11-21 09:59:47

Judging History

你现在查看的是最新测评结果

  • [2024-11-21 09:59:47]
  • 评测
  • 测评结果:15
  • 用时:901ms
  • 内存:456304kb
  • [2024-11-21 09:59:46]
  • 提交

answer

#pragma GCC optimize(3, "unroll-loops", "no-stack-protector")
#define atsum(l, r) accumulate(l, r, 0)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/hash_policy.hpp>
using namespace std;
using ll = long long;
using ull = unsigned long long;
constexpr int inf = 0x3f3f3f3f;
constexpr ll INF = 0x3f3f3f3f3f3f3f3f;
template <typename T>
inline void chkmin(T &x, T y) { x = min(x, y); }
template <typename T>
inline void chkmax(T &x, T y) { x = max(x, y); }
namespace FastIO
{
// ------------------------------
#define IN_HAS_NEG
#define OUT_HAS_NEG
#define CHK_EOF
#define DISABLE_MMAP
// ------------------------------
#if __cplusplus < 201400
#error Please use C++14 or higher.
#endif
#if __cplusplus > 201700
#define INLINE_V inline
#else
#define INLINE_V
#endif
#if ( defined(LOCAL) || defined (_WIN32) ) && !defined(DISABLE_MMAP)
#define DISABLE_MMAP
#endif
#ifndef DISABLE_MMAP
#include<sys/mman.h>
#endif
#ifdef LOCAL
    inline char gc() { return getchar(); }
    inline void pc(char c) { putchar(c); }
#else
#ifdef DISABLE_MMAP
    INLINE_V constexpr int _READ_SIZE = 1 << 18;
    INLINE_V static char _read_buffer[_READ_SIZE], *_read_ptr = nullptr, *_read_ptr_end = nullptr;
    inline char gc()
    {
        if ( __builtin_expect(_read_ptr == _read_ptr_end, false) )
        {
            _read_ptr = _read_buffer;
            _read_ptr_end = _read_buffer + fread(_read_buffer, 1, _READ_SIZE, stdin);
#ifdef CHK_EOF
            if ( __builtin_expect(_read_ptr == _read_ptr_end, false) ) return EOF;
#endif
        }
        return *_read_ptr++;
    }
#else
    INLINE_V static const char *_read_ptr = (const char *)mmap(nullptr, INT_MAX, 1, 2, 0, 0);
    inline char gc() { return *_read_ptr++; }
#endif
    INLINE_V constexpr int _WRITE_SIZE = 1 << 18;
    INLINE_V static char _write_buffer[_WRITE_SIZE], *_write_ptr = _write_buffer;
    inline void pc(char c)
    {
        *_write_ptr++ = c;
        if ( __builtin_expect(_write_buffer + _WRITE_SIZE == _write_ptr, false) )
        {
            fwrite(_write_buffer, 1, _write_ptr - _write_buffer, stdout);
            _write_ptr = _write_buffer;
        }
    }
    INLINE_V struct _auto_flush
    {
        ~_auto_flush() { fwrite(_write_buffer, 1, _write_ptr - _write_buffer, stdout); }
    }	_auto_flush;
#endif
#ifdef CHK_EOF
    inline bool _isdigit(char c) { return ( c & 16 ) && c != EOF; }
    inline bool _isgraph(char c) { return c > 32 && c != EOF; }
#else
    inline bool _isdigit(char c) { return c & 16; }
    inline bool _isgraph(char c) { return c > 32; }
#endif
    template < class T >
    INLINE_V constexpr bool _is_integer = numeric_limits < T >::is_integer;
    template < class T >
    INLINE_V constexpr bool _is_signed = numeric_limits < T >::is_signed;
    template < class T >
    INLINE_V constexpr bool _is_unsigned = _is_integer < T > && !_is_signed < T >;
    template <> INLINE_V constexpr bool _is_integer < __int128 > = true;
    template <> INLINE_V constexpr bool _is_integer < __uint128_t > = true;
    template <> INLINE_V constexpr bool _is_signed < __int128 > = true;
    template <> INLINE_V constexpr bool _is_unsigned < __uint128_t > = true;
#undef INLINE_V
    inline void read(char &c) { do c = gc(); while ( !_isgraph(c) ); }
    inline void read_cstr(char *s)
    {
        char c = gc(); while ( !_isgraph(c) ) c = gc();
        while ( _isgraph(c) ) *s++ = c, c = gc();
        *s = 0;
    }
    inline void read(string &s)
    {
        char c = gc(); s.clear(); while ( !_isgraph(c) ) c = gc();
        while ( _isgraph(c) ) s.push_back(c), c = gc();
    }
#ifdef IN_HAS_NEG
    template < class T, enable_if_t < _is_signed < T >, int > = 0 >
    inline void read(T &x)
    {
        char c = gc(); bool f = true; x = 0;
        while ( !_isdigit(c) ) { if ( c == 45 ) f = false; c = gc(); }
        if ( f ) while ( _isdigit(c) ) x = x * 10 + ( c & 15 ), c = gc();
        else     while ( _isdigit(c) ) x = x * 10 - ( c & 15 ), c = gc();
    }
    template < class T, enable_if_t < _is_unsigned < T >, int > = 0 >
#else
    template < class T, enable_if_t < _is_integer < T >, int > = 0 >
#endif
    inline void read(T &x)
    {
        char c = gc(); while ( !_isdigit(c) ) c = gc();
        x = 0; while ( _isdigit(c) ) x = x * 10 + ( c & 15 ), c = gc();
    }
    inline void write(char c) { pc(c); }
    inline void write_cstr(const char *s) { while ( *s ) pc(*s++); }
    inline void write(const string &s) { for ( char c : s ) pc(c); }
#ifdef OUT_HAS_NEG
    template < class T, enable_if_t < _is_signed < T >, int > = 0 >
    inline void write(T x)
    {
        char buffer[numeric_limits < T >::digits10 + 1]; int digits = 0;
        if ( x >= 0 )  do buffer[digits++] =  ( x % 10 ) | 48, x /= 10; while ( x );
        else { pc(45); do buffer[digits++] = -( x % 10 ) | 48, x /= 10; while ( x ); }
        while ( digits ) pc(buffer[--digits]);
    }
    template < class T, enable_if_t < _is_unsigned < T >, int > = 0 >
#else
    template < class T, enable_if_t < _is_integer < T >, int > = 0 >
#endif
    inline void write(T x)
    {
        char buffer[numeric_limits < T >::digits10 + 1]; int digits = 0;
        do buffer[digits++] = ( x % 10 ) | 48, x /= 10; while ( x );
        while ( digits ) pc(buffer[--digits]);
    }
    template < int N > struct _tuple_io_helper
    {
        template < class ...T >
        static inline void _read(tuple < T... > &x)
        { _tuple_io_helper < N - 1 >::_read(x), read(get < N - 1 > (x)); }
        template < class ...T >
        static inline void _write(const tuple < T... > &x)
        { _tuple_io_helper < N - 1 >::_write(x), pc(32), write(get < N - 1 > (x)); }
    };
    template <> struct _tuple_io_helper < 1 >
    {
        template < class ...T >
        static inline void _read(tuple < T... > &x) { read(get < 0 > (x)); }
        template < class ...T >
        static inline void _write(const tuple < T... > &x) { write(get < 0 > (x)); }
    };
    template < class ...T >
    inline void read(tuple < T... > &x) { _tuple_io_helper < sizeof...(T) >::_read(x); }
    template < class ...T >
    inline void write(const tuple < T... > &x) { _tuple_io_helper < sizeof...(T) >::_write(x); }
    template < class T1, class T2 >
    inline void read(pair < T1, T2 > &x) { read(x.first), read(x.second); }
    template < class T1, class T2 >
    inline void write(const pair < T1, T2 > &x) { write(x.first), pc(32), write(x.second); }
    template < class T1, class ...T2 >
    inline void read(T1 &x, T2 &...y) { read(x), read(y...); }
    template < class ...T >
    inline void read_cstr(char *x, T *...y) { read_cstr(x), read_cstr(y...); }
    template < class T1, class ...T2 >
    inline void write(const T1 &x, const T2 &...y) { write(x), write(y...); }
    template < class ...T >
    inline void write_cstr(const char *x, const T *...y) { write_cstr(x), write_cstr(y...); }
    template < class T >
    inline void print(const T &x) { write(x); }
    inline void print_cstr(const char *x) { write_cstr(x); }
    template < class T1, class ...T2 >
    inline void print(const T1 &x, const T2 &...y) { print(x), pc(32), print(y...); }
    template < class ...T >
    inline void print_cstr(const char *x, const T *...y) { print_cstr(x), pc(32), print_cstr(y...); }
    inline void println() { pc(10); }
    inline void println_cstr() { pc(10); }
    template < class ...T >
    inline void println(const T &...x) { print(x...), pc(10); }
    template < class ...T >
    inline void println_cstr(const T *...x) { print_cstr(x...), pc(10); }
}
using namespace FastIO;
template <typename T>
inline void clear(T &x) {
    T y;
    swap(x, y);
}

const int N = 2e5 + 50, C = 5005;
const __int128_t P = 999999999999999989;
__int128_t h1[N], hlen[N];
bool o1;
struct Node{
    int tag, l, r;
    ll h;
} w[N * 160];
#define lc(u) w[u].l
#define rc(u) w[u].r
int cnt;
inline void pushup(int u, int len, int rlen) {
    w[u].h = (w[lc(u)].h + __int128(w[rc(u)].h) * hlen[rlen]) % P;
    if (w[u].tag) w[u].h = (h1[len] - w[u].h + P) % P;
}
inline int update(int v, int L, int R, int l, int r) {
    if (L > r || R < l) return v;
    int u = ++cnt;
    w[u] = w[v];
    if (L >= l && R <= r) {
        w[u].tag ^= 1, w[u].h = (h1[R - L + 1] - w[u].h + P) % P;
        return u;
    }
    int M = L + R >> 1;
    lc(u) = update(lc(v), L, M, l, r);
    rc(u) = update(rc(v), M + 1, R, l, r);
    pushup(u, R - L + 1, R - M);
    return u;
}
inline int query(int u, int L, int R, int x) {
    if (!u) return 0;
    if (L == R) return w[u].tag;
    int M = L + R >> 1;
    if (x <= M) return w[u].tag ^ query(lc(u), L, M, x);
    return w[u].tag ^ query(rc(u), M + 1, R, x);
}
inline __int128_t calc(__int128_t c, int len, int type) {
    if (type) return (h1[len] - c + P) % P;
    return c;
}
inline int diffpos(int u, int v, int L, int R, int tu, int tv) {
    // cerr << "find youmo:" << u << ' ' << v << ' ' << L << ' ' << R << ' ' << endl;
    // sleep(1);
    if (L == R) return L;
    tu ^= w[u].tag, tv ^= w[v].tag;
    int M = L + R >> 1;
    if (calc(w[lc(u)].h, M - L + 1, tu) == calc(w[lc(v)].h, M - L + 1, tv)) return diffpos(rc(u), rc(v), M + 1, R, tu, tv);
    return diffpos(lc(u), lc(v), L, M, tu, tv);
}

int n, q, type, a[C][C], siz[N], g[N], root[N];
int id[N], fa[N], mn[N], mx[N];
string str[N];
inline int find(int u) { return fa[u] == u ? u : (fa[u] = find(fa[u])); }
priority_queue<int> oc[N];
inline void merge(int u, int v) {
    u = find(u), v = find(v);
    if (u == v) return;
    fa[u] = v, chkmin(mn[v], mn[u]), chkmax(mx[v], mx[u]), siz[v] += siz[u];
    if (oc[v].size() < oc[u].size()) swap(oc[u], oc[v]);
    while (oc[u].size()) oc[v].push(oc[u].top()),  oc[u].pop();
    g[v] += g[u];
}
vector<pair<int, int> > upd[N];
int res[N];
bool o2;
int main() {
    cerr << (&o2 - &o1) / 1048576. << endl;
    // freopen("in", "r", stdin);
    // freopen("out", "w", stdout);
    read(n, q, type);
    // assert(type == 0);
    hlen[0] = 1;
    for (int i = 1; i <= n; i++) h1[i] = (h1[i - 1] * 5 + 1) % P, hlen[i] = hlen[i - 1] * 5 % P;
    for (int i = 1; i <= n; i++) siz[i] = 1, fa[i] = i, mn[i] = mx[i] = i;
    while (q--) {
        int x1, x2, y1, y2;
        read(x1, x2, y1, y2), ++x2, ++y2;
        upd[x1].emplace_back(y1, y2 - 1);
        upd[x2].emplace_back(y1, y2 - 1);
        a[x1][y1] ^= 1;
        a[x2][y1] ^= 1;
        a[x1][y2] ^= 1;
        a[x2][y2] ^= 1;
    }
    for (int i = 1; i <= n; i++) {
        root[i] = root[i - 1];
        for (auto [l, r] : upd[i]) root[i] = update(root[i], 1, n, l, r);
    }
    // cerr << "to there:" << endl;
    for (int i = 1; i <= n; i++) id[i] = i, str[i] = '0';
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++) {
            a[i][j] = a[i][j] ^ a[i - 1][j] ^ a[i][j - 1] ^ a[i - 1][j - 1];
            if (a[i][j]) str[i] += '1';
            else str[i] += '0';
        }
    sort(id + 1, id + n + 1,[&](int x, int y) {
        if (w[root[x]].h == w[root[y]].h) return bool(0);
        int c = diffpos(root[x], root[y], 1, n, 0, 0);
        return query(root[x], 1, n, c) < query(root[y], 1 ,n, c);
    });
    // cerr << "after sort:" << endl;
    for (int i = 1; i <= n; i++) {
        int l = inf, r = 0;
        for (int j = 1; j <= n; j++)
            if (str[id[j]][i] == '1') chkmin(l, j);
            else chkmax(r, j);
        // cerr << "find youmo:" << l << ' ' << r << endl;
        if (l <= r) {
            for (int c = l; c <= r; c++) merge(l, c);
            int c = find(l);
            ++g[c];
            while (oc[c].size() && oc[c].top() >= mn[c]) ++g[c], oc[c].pop();
        } else if (l != inf) {
            if (find(l) == find(r)) ++g[find(l)];
            else 
            oc[find(l)].push(r);
        }
        int sg = 0;
        ll ans = 1ll * n * i;
        // for (int i = 1; i <= n; i++) cerr << find(i) << ' ';
        // cerr << endl;
        for (int i = 1; i <= n; i++) if (find(i) == i ) {
            ll len = 1ll * g[i] * (mx[i] - mn[i] + 1);
            // cerr << "find len:" << len << ' ' << mx[i] << ' ' << mn[i] << endl;
            sg += g[i];
            ans -= max(len, 1ll);
            ++ans;
        }
        if (type == 1 || i == n) write(ans, ' ');
    }
    return 0;
}
/*
2 2 0
1 1 1 1
2 2 2 2


1 3
2 4
3 2
4 1
*/

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 7ms
memory: 28364kb

input:

4 1000 0
2 3 1 2
1 3 1 3
1 2 1 2
1 2 3 4
1 4 2 4
1 3 1 2
1 4 1 2
1 3 1 4
3 3 2 3
1 2 2 4
4 4 1 3
3 3 3 4
3 4 3 4
2 3 1 1
1 2 2 4
1 4 3 4
3 4 1 2
1 2 2 3
3 4 3 3
1 2 4 4
4 4 2 4
1 4 1 1
1 1 1 3
2 3 2 3
1 1 2 4
2 3 2 4
3 3 1 4
3 3 3 3
1 3 3 3
2 3 2 4
3 3 2 2
1 3 2 4
1 3 1 2
3 4 1 2
2 3 1 3
1 1 1 2
1 2...

output:

1 

result:

ok 1 number(s): "1"

Test #2:

score: 5
Accepted
time: 0ms
memory: 26492kb

input:

4 1000 0
1 4 3 3
2 3 4 4
3 4 3 4
3 4 1 2
1 4 2 4
2 3 1 3
3 4 2 4
2 3 3 3
3 4 1 3
1 3 1 4
2 3 1 3
1 1 2 2
1 4 3 4
1 4 1 3
1 2 3 4
1 2 1 2
2 3 1 4
2 2 2 2
1 3 1 3
2 2 2 4
1 2 1 4
1 1 1 1
1 2 3 4
4 4 1 3
2 4 1 3
1 1 1 3
1 4 2 2
2 3 1 2
2 2 1 2
1 2 1 4
1 4 2 4
1 2 1 3
1 2 1 3
2 4 2 2
1 2 1 1
1 2 1 3
2 4...

output:

1 

result:

ok 1 number(s): "1"

Test #3:

score: 5
Accepted
time: 3ms
memory: 28604kb

input:

4 1000 0
1 4 1 2
1 4 2 2
1 4 3 4
2 4 4 4
2 3 3 4
2 4 2 4
1 2 2 2
4 4 2 4
1 3 1 3
1 4 1 4
3 3 3 4
4 4 2 3
2 3 1 4
2 2 1 3
2 3 2 4
2 2 1 4
1 2 2 3
1 4 1 3
4 4 1 4
3 4 1 4
1 2 1 2
1 2 1 3
2 2 3 3
1 2 1 4
1 1 1 4
2 2 1 4
1 4 3 4
2 4 2 4
2 2 1 4
3 4 1 3
2 3 2 4
1 3 1 4
1 3 1 4
3 3 1 3
1 2 1 3
3 3 1 4
1 4...

output:

5 

result:

ok 1 number(s): "5"

Subtask #2:

score: 10
Accepted

Test #4:

score: 10
Accepted
time: 72ms
memory: 138332kb

input:

50 200000 0
1 45 2 6
29 44 2 6
31 37 2 50
2 37 1 19
7 13 8 38
38 46 19 38
10 30 30 46
22 42 1 45
5 35 24 27
10 36 19 31
20 47 17 35
7 9 23 42
15 26 31 42
7 8 7 42
1 26 33 48
2 5 30 36
17 44 21 44
5 44 24 36
19 47 15 17
29 36 2 42
31 34 11 41
9 24 12 30
30 43 8 20
2 12 13 20
11 12 10 15
14 22 3 29
2 ...

output:

1 

result:

ok 1 number(s): "1"

Test #5:

score: 10
Accepted
time: 8ms
memory: 28540kb

input:

50 70 0
1 50 1 50
24 50 1 1
50 50 2 2
34 50 3 3
36 50 4 4
32 50 5 5
18 50 6 6
12 50 7 7
6 50 8 8
28 50 9 9
38 50 10 10
4 50 11 11
26 50 12 12
14 50 13 13
46 50 14 14
2 50 15 15
8 50 16 16
44 50 17 17
10 50 18 18
30 50 19 19
22 50 20 20
48 50 21 21
20 50 22 22
42 50 23 23
40 50 24 24
16 50 25 25
16 5...

output:

2280 

result:

ok 1 number(s): "2280"

Test #6:

score: 10
Accepted
time: 4ms
memory: 26488kb

input:

50 100 0
2 49 1 1
23 28 2 2
19 32 3 3
21 30 4 4
20 31 5 5
22 29 6 6
12 39 7 7
15 36 8 8
7 44 9 9
3 48 10 10
10 41 11 11
5 46 12 12
14 37 13 13
13 38 14 14
4 47 15 15
6 45 16 16
17 34 17 17
25 26 18 18
1 50 19 19
9 42 20 20
11 40 21 21
16 35 22 22
24 27 23 23
8 43 24 24
18 33 25 25
11 40 26 26
14 37 ...

output:

339 

result:

ok 1 number(s): "339"

Test #7:

score: 10
Accepted
time: 5ms
memory: 28580kb

input:

50 500 0
1 2 1 14
3 4 1 3
5 6 1 12
7 8 1 9
9 10 1 15
11 12 1 11
13 14 1 13
15 16 1 17
17 18 1 16
19 20 1 20
21 22 1 2
23 24 1 10
25 26 1 4
27 28 1 8
29 30 1 19
31 32 1 21
33 34 1 24
35 36 1 23
37 38 1 6
39 40 1 18
41 42 1 25
43 44 1 5
45 46 1 22
47 48 1 1
49 50 1 7
35 36 26 26
41 42 26 26
27 28 27 2...

output:

51 

result:

ok 1 number(s): "51"

Subtask #3:

score: 0
Wrong Answer

Test #8:

score: 10
Accepted
time: 901ms
memory: 456056kb

input:

5000 200000 0
1438 2561 3478 4930
1740 4634 87 3003
590 3275 1376 1681
2035 2793 2004 4945
567 3159 550 4470
61 3039 3431 3519
2654 3834 3460 4960
591 3560 409 443
345 2599 746 2891
1288 4570 1577 4402
249 377 1951 4534
2411 2455 294 1192
1679 3153 1645 4259
1735 1856 601 668
477 4881 411 2094
424 1...

output:

1 

result:

ok 1 number(s): "1"

Test #9:

score: 10
Accepted
time: 347ms
memory: 255320kb

input:

5000 200000 0
4336 5000 1 1
686 5000 2 2
3130 5000 3 3
672 5000 4 4
1664 5000 5 5
1480 5000 6 6
1326 5000 7 7
3726 5000 8 8
4170 5000 9 9
4794 5000 10 10
3374 5000 11 11
1836 5000 12 12
310 5000 13 13
2146 5000 14 14
3266 5000 15 15
820 5000 16 16
1152 5000 17 17
2876 5000 18 18
134 5000 19 19
828 5...

output:

24995 

result:

ok 1 number(s): "24995"

Test #10:

score: 10
Accepted
time: 348ms
memory: 255240kb

input:

5000 200000 0
1410 5000 1 1
3340 5000 2 2
4202 5000 3 3
4450 5000 4 4
914 5000 5 5
4514 5000 6 6
4 5000 7 7
238 5000 8 8
3182 5000 9 9
3302 5000 10 10
2136 5000 11 11
1504 5000 12 12
3204 5000 13 13
2078 5000 14 14
4026 5000 15 15
3690 5000 16 16
4430 5000 17 17
1304 5000 18 18
2156 5000 19 19
4154 ...

output:

10000 

result:

ok 1 number(s): "10000"

Test #11:

score: 10
Accepted
time: 334ms
memory: 286380kb

input:

5000 200000 0
1556 3445 1 1
1803 3198 2 2
790 4211 3 3
564 4437 4 4
1128 3873 5 5
129 4872 6 6
2062 2939 7 7
1480 3521 8 8
1252 3749 9 9
942 4059 10 10
111 4890 11 11
915 4086 12 12
1575 3426 13 13
2186 2815 14 14
392 4609 15 15
1689 3312 16 16
492 4509 17 17
866 4135 18 18
381 4620 19 19
92 4909 20...

output:

34989 

result:

ok 1 number(s): "34989"

Test #12:

score: 10
Accepted
time: 472ms
memory: 325244kb

input:

5000 200000 0
1 1 2330 2671
2 2 789 4212
3 3 1593 3408
4 4 438 4563
5 5 2048 2953
6 6 491 4510
7 7 578 4423
8 8 770 4231
9 9 482 4519
10 10 395 4606
11 11 1960 3041
12 12 1289 3712
13 13 621 4380
14 14 2235 2766
15 15 916 4085
16 16 781 4220
17 17 1440 3561
18 18 902 4099
19 19 1998 3003
20 20 641 4...

output:

49977 

result:

ok 1 number(s): "49977"

Test #13:

score: 0
Wrong Answer
time: 712ms
memory: 411356kb

input:

5000 200000 0
1 661 1 2
1 1385 3 4
1 225 5 6
1 1833 7 8
1 58 9 10
1 2064 11 12
1 235 13 14
1 1918 15 16
1 2137 17 18
1 538 19 20
1 513 21 22
1 1405 23 24
1 1376 25 26
1 1711 27 28
1 165 29 30
1 209 31 32
1 68 33 34
1 1864 35 36
1 1455 37 38
1 425 39 40
1 669 41 42
1 2326 43 44
1 133 45 46
1 2257 47 ...

output:

1 

result:

wrong answer 1st numbers differ - expected: '5001', found: '1'

Subtask #4:

score: 0
Wrong Answer

Test #14:

score: 0
Wrong Answer
time: 885ms
memory: 456304kb

input:

5000 200000 1
565 4401 1659 1826
429 1640 2999 3495
572 3994 9 3863
3844 4284 2307 3144
1054 1943 358 2592
727 4248 29 1171
1685 2392 4559 4929
1149 2787 1204 1947
2349 2619 405 998
1910 2786 25 1275
912 3475 4384 4387
3822 4895 1849 4548
3082 4749 3457 4220
3174 4885 117 1085
2517 3919 4325 4869
17...

output:

5000 2495 3715 1781 1031 823 176 185 190 41 23 25 27 29 31 33 35 37 39 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

result:

wrong answer 2nd numbers differ - expected: '5653', found: '2495'

Subtask #5:

score: 0
Runtime Error

Test #21:

score: 0
Runtime Error

input:

200000 200000 1
1 2 1 6
3 4 1 1
5 6 1 5
7 8 1 3
9 10 1 3
11 12 1 6
13 14 1 5
15 16 1 6
17 18 1 6
19 20 1 1
21 22 1 4
23 24 1 5
25 26 1 2
27 28 1 4
29 30 1 3
31 32 1 2
33 34 1 6
35 36 1 3
37 38 1 2
39 40 1 2
41 42 1 3
43 44 1 1
45 46 1 2
47 48 1 3
49 50 1 4
51 52 1 5
53 54 1 1
55 56 1 5
57 58 1 5
59 ...

output:


result:


Subtask #6:

score: 0
Runtime Error

Test #28:

score: 0
Runtime Error

input:

200000 200000 0
91264 123676 6826 154505
121351 188051 108158 131448
65413 163961 26771 116304
93852 110556 34929 187363
31794 142162 33578 38712
26574 67763 178013 197235
46436 146042 95 122860
11683 50463 60177 195245
60862 194711 37817 97212
144366 176271 113551 171098
120095 170517 73555 167299
...

output:


result:


Subtask #7:

score: 0
Runtime Error

Test #37:

score: 0
Runtime Error

input:

100000 200000 1
1 22878 1 2
1 7957 3 4
1 21779 5 6
1 34321 7 8
1 41692 9 10
1 49473 11 12
1 10254 13 14
1 43995 15 16
1 46975 17 18
1 668 19 20
1 25996 21 22
1 24975 23 24
1 43259 25 26
1 4174 27 28
1 39330 29 30
1 35462 31 32
1 27523 33 34
1 5574 35 36
1 47955 37 38
1 47013 39 40
1 3846 41 42
1 276...

output:


result: