Submission #1195302


Source Code Expand

#include <cstdio>
#include <tuple>
#include <vector>
static const int MAXN = 1e5 + 4;
static const int MAXQ = 1e5 + 4;
static const int MAXD = 12;

int n, m, q;
std::vector<int> e[MAXN];
// tuple<colour, remaining_steps, painted_time>
std::tuple<int, int, int> s[MAXD][MAXN];
int q_v[MAXQ], q_d[MAXQ], q_c[MAXQ];
std::vector<int> q_with_d[MAXD];

inline void cover_colour(std::tuple<int, int, int> &orig, const std::tuple<int, int, int> &upd, bool persistent = false)
{
    if (std::get<2>(orig) < std::get<2>(upd)) {
        orig = upd;
        if (!persistent) std::get<1>(orig) -= 1;
    }
}

int main()
{
    scanf("%d%d", &n, &m);
    int u, v;
    for (int i = 0; i < m; ++i) {
        scanf("%d%d", &u, &v); --u, --v;
        e[u].push_back(v);
        e[v].push_back(u);
    }

    for (int d = 0; d < MAXD; ++d)
        for (int i = 0; i < n; ++i) s[d][i] = std::make_tuple(0, 0, -1);
    scanf("%d", &q);
    int d, c;
    for (int i = 0; i < q; ++i) {
        scanf("%d%d%d", &q_v[i], &q_d[i], &q_c[i]);
        --q_v[i];
        q_with_d[q_d[i]].push_back(i);
    }

    for (int cur_d = 10; cur_d >= 0; --cur_d) {
        for (int i : q_with_d[cur_d])
            cover_colour(s[0][q_v[i]], std::make_tuple(q_c[i], q_d[i] + 1, i));

        for (int i = 0; i <= 10; ++i) {
            for (int u = 0; u < n; ++u) cover_colour(s[i + 1][u], s[i][u], true);
            for (int u = 0; u < n; ++u) if (std::get<1>(s[i][u]) > 0) {
                for (int v : e[u]) cover_colour(s[i + 1][v], s[i][u]);
            }
        }
    }
    /*for (int r = 0; r <= 10; ++r)
        for (int i = 0; i < n; ++i) printf("%d(%d)%c", std::get<0>(s[r][i]), std::get<1>(s[r][i]), i == n - 1 ? '\n' : ' ');*/

    for (int i = 0; i < n; ++i) printf("%d\n", std::get<0>(s[11][i]));
    return 0;
}

Submission Info

Submission Time
Task B - Splatter Painting
User cyand1317
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1851 Byte
Status AC
Exec Time 225 ms
Memory 22392 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:25:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
                          ^
./Main.cpp:28:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &u, &v); --u, --v;
                              ^
./Main.cpp:35:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &q);
                    ^
./Main.cpp:38:51: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d", &q_v[i], &q_d[i], &q_c[i]);
                                                   ^

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 200 / 200 500 / 500
Status
AC × 2
AC × 19
AC × 35
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt
Subtask1 00_example_01.txt, 00_example_02.txt, 10_01.txt, 10_02.txt, 10_03.txt, 10_04.txt, 10_05.txt, 10_06.txt, 10_07.txt, 10_08.txt, 10_09.txt, 10_10.txt, 10_11.txt, 10_12.txt, 10_13.txt, 10_14.txt, 10_15.txt, 10_16.txt, 10_17.txt
All 00_example_01.txt, 00_example_02.txt, 10_01.txt, 10_02.txt, 10_03.txt, 10_04.txt, 10_05.txt, 10_06.txt, 10_07.txt, 10_08.txt, 10_09.txt, 10_10.txt, 10_11.txt, 10_12.txt, 10_13.txt, 10_14.txt, 10_15.txt, 10_16.txt, 10_17.txt, 20_01.txt, 20_02.txt, 20_03.txt, 20_04.txt, 20_05.txt, 20_06.txt, 20_07.txt, 20_08.txt, 20_09.txt, 20_10.txt, 20_11.txt, 20_12.txt, 20_13.txt, 20_14.txt, 20_15.txt, 20_16.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 4 ms 15744 KB
00_example_02.txt AC 5 ms 15744 KB
10_01.txt AC 5 ms 15872 KB
10_02.txt AC 5 ms 15744 KB
10_03.txt AC 5 ms 15744 KB
10_04.txt AC 5 ms 15744 KB
10_05.txt AC 5 ms 15872 KB
10_06.txt AC 5 ms 15744 KB
10_07.txt AC 5 ms 15872 KB
10_08.txt AC 8 ms 15872 KB
10_09.txt AC 8 ms 15872 KB
10_10.txt AC 8 ms 15872 KB
10_11.txt AC 8 ms 15872 KB
10_12.txt AC 8 ms 15872 KB
10_13.txt AC 7 ms 15872 KB
10_14.txt AC 7 ms 15872 KB
10_15.txt AC 6 ms 15872 KB
10_16.txt AC 7 ms 15872 KB
10_17.txt AC 7 ms 15872 KB
20_01.txt AC 225 ms 21632 KB
20_02.txt AC 224 ms 21632 KB
20_03.txt AC 225 ms 21632 KB
20_04.txt AC 35 ms 16512 KB
20_05.txt AC 6 ms 15872 KB
20_06.txt AC 38 ms 16896 KB
20_07.txt AC 7 ms 16000 KB
20_08.txt AC 23 ms 17152 KB
20_09.txt AC 7 ms 15872 KB
20_10.txt AC 21 ms 17152 KB
20_11.txt AC 27 ms 17664 KB
20_12.txt AC 130 ms 19968 KB
20_13.txt AC 192 ms 21376 KB
20_14.txt AC 196 ms 21632 KB
20_15.txt AC 162 ms 22136 KB
20_16.txt AC 162 ms 22392 KB