Submission #1369032


Source Code Expand

#include <bits/stdc++.h>
 
#define pii pair<int, int>
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define ll long long 
#define ld long double
#define sz(v) int(v.size())
#define all(v) v.begin(), v.end()
 
#define y1 what
 
using namespace std;
 
const int N = (int) 2e5 + 10;
const int M = (int) 18;
const ll big =  (1LL << 51);
const ll LINF = (ll) 1e18;
const int INF = (int) 1e9 + 7;
const double EPS = (double) 1e-6;
const double PI =  3.14159265359;
 
int n, m, q;
int a[N], b[N], c[N], d[N];
vector<int> v[N], comp[N];
int was[N], clr[N];
int dist[5001][5001];
 
int main() {
    #define fn "balls"
    #ifdef witch
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #else
//        freopen(fn".in", "r", stdin);
//        freopen(fn".out", "w", stdout);
    #endif
    srand(time(0));
    cin >> n >> m;
    while (m--) {
        int x, y;
        cin >> x >> y;
        v[x].pb(y);
        v[y].pb(x);
    }
    cin >> q;
    for (int i = 1; i <= q; i++) {
        cin >> a[i] >> b[i] >> c[i];
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            dist[i][j] = INF;
        }
        dist[i][i] = 0;
        queue<int> q;
        q.push(i);
        while (!q.empty()) {
            int fr = q.front(); q.pop();
            for (auto it : v[fr]) {
                if (dist[i][fr] + 1 < dist[i][it]) {
                    dist[i][it] = dist[i][fr] + 1;
                    q.push(it);
                }
            }
        }
    }
    for (int i = n; i >= 1; i--) {
        d[i] = -INF;
    }
    for (int i = q; i >= 1; i--) {
        if (was[a[i]])
            continue;
        set<pii> q;
        q.insert(mp(-b[i], a[i]));
        d[a[i]] = b[i];
        was[a[i]] = c[i];
        clr[a[i]] = i;
        vector<int> all;
        while (!q.empty()) {
            int fr = q.begin() -> s;
            all.pb(fr);
            q.erase(q.begin());
            if (d[fr] == 0) 
                continue;
            for (auto it : v[fr]) {
                if (was[it]) {
                    if (clr[it] == i) 
                        continue;
                    //if (d[fr] - 2 * b[clr[it]] - 2 >= 0) {
                        for (auto go : comp[clr[it]]) {
                            //assert(!was[go]);
                            if (d[fr] - dist[it][go] - 2 > d[go]) {
                                was[go] = c[i];
                                clr[go] = i;
                                q.erase(mp(-d[go], go));    
                                d[go] = d[fr] - dist[it][go] - 2;  
                                q.insert(mp(-d[go], go));
                            }
                        }
                    //}
                } else {
                    if (d[fr] - 1 > d[it]) {
                        q.erase(mp(-d[it], it));
                        was[it] = c[i];
                        d[it] = d[fr] - 1;
                        clr[it] = i;
                        q.insert(mp(-d[it], it));
                    }
                }
            }
        }
        for (auto it : all) {
            for (auto add : v[it]) {
                if (!was[add])
                    comp[i].pb(add);
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        cout << was[i] << "\n";
    }
    return 0;
}

Submission Info

Submission Time
Task B - Splatter Painting
User Nurlykhan
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3484 Byte
Status RE
Exec Time 2104 ms
Memory 112000 KB

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 0 / 200 0 / 500
Status
AC × 1
WA × 1
AC × 9
WA × 10
AC × 11
WA × 14
TLE × 8
RE × 2
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 WA 5 ms 14592 KB
00_example_02.txt AC 5 ms 14592 KB
10_01.txt AC 7 ms 17152 KB
10_02.txt AC 6 ms 17152 KB
10_03.txt WA 5 ms 14848 KB
10_04.txt AC 6 ms 17152 KB
10_05.txt AC 7 ms 17152 KB
10_06.txt AC 5 ms 14592 KB
10_07.txt AC 14 ms 48512 KB
10_08.txt WA 80 ms 54784 KB
10_09.txt WA 84 ms 54784 KB
10_10.txt WA 83 ms 54784 KB
10_11.txt WA 80 ms 54784 KB
10_12.txt WA 84 ms 54784 KB
10_13.txt WA 61 ms 52736 KB
10_14.txt WA 59 ms 50688 KB
10_15.txt WA 60 ms 50688 KB
10_16.txt AC 43 ms 54912 KB
10_17.txt AC 43 ms 54912 KB
20_01.txt TLE 2103 ms 32128 KB
20_02.txt TLE 2104 ms 34176 KB
20_03.txt TLE 2104 ms 32128 KB
20_04.txt RE 2035 ms 111488 KB
20_05.txt WA 15 ms 25472 KB
20_06.txt RE 328 ms 112000 KB
20_07.txt WA 14 ms 27648 KB
20_08.txt AC 67 ms 23808 KB
20_09.txt WA 14 ms 31744 KB
20_10.txt WA 53 ms 21632 KB
20_11.txt AC 93 ms 28032 KB
20_12.txt TLE 2104 ms 35968 KB
20_13.txt TLE 2104 ms 36224 KB
20_14.txt TLE 2104 ms 36224 KB
20_15.txt TLE 2104 ms 55800 KB
20_16.txt TLE 2104 ms 55800 KB