Submission #2210541


Source Code Expand

#include "bits/stdc++.h"
using namespace std;

class Vertice{
    private:
    int idx;
    vector<Vertice*> neighbors;
    public:
    void clear(){
        this->neighbors.clear();
    }
    void addNeighbor(Vertice* neighbor){
        this->neighbors.push_back(neighbor);
    }
    vector<Vertice*> &getNeighbors(){
        return this->neighbors;
    }
    void setIndex(const int index){
        this->idx=index;
    }
    int getIndex(){
        return this->idx;
    }
};

class Operation{
    private:
    int v, d, c;
    public:
    Operation(const int lhs, const int mhs, const int rhs){
        this->v=lhs;
        this->d=mhs;
        this->c=rhs;
    }
    int getV(){
        return this->v;
    }
    int getD(){
        return this->d;
    }
    int getC(){
        return this->c;
    }
};

vector<int> painting(const int n, const vector<Operation> &operations, const vector<Vertice> &vertices){
    vector<int> foo(n, 0);
    vector<int> vst(n, -1);
    vector<int> dst(n, 0);
    int msk=0;
    for(auto operation : operations){
        queue<Vertice*> que;
        que.push((Vertice*)(&vertices[operation.getV()]));
        dst[operation.getV()]=operation.getD();
        vst[operation.getV()]=msk;
        for(; !que.empty(); que.pop()){
            Vertice *u=que.front();
            foo[u->getIndex()]=operation.getC();
            if(dst[u->getIndex()]>0){
                for(Vertice *v : u->getNeighbors()){
                    if(vst[v->getIndex()]!=msk){
                        que.push(v);
                        dst[v->getIndex()]=dst[u->getIndex()]-1;
                        vst[v->getIndex()]=msk;
                    }
                }
            }
        }
        msk++;
    }
    return foo;
}

int main(){
    int n, m, q;
    while(scanf("%d%d", &n, &m)!=EOF){
        vector<Vertice> vertices;
        vertices.resize(n);
        for(int i=0; i<n; i++){
            vertices[i].setIndex(i);
        }
        for(int i=0; i<m; i++){
            int u, v;
            scanf("%d%d", &u, &v);
            u--;
            v--;
            vertices[u].addNeighbor(&vertices[v]);
            vertices[v].addNeighbor(&vertices[u]);
        }
        scanf("%d", &q);
        vector<Operation> operations;
        for(int i=0; i<q; i++){
            int v, d, c;
            scanf("%d%d%d", &v, &d, &c);
            operations.push_back(Operation(v-1, d, c));
        }
        vector<int> foo=painting(n, operations, vertices);
        for(const int r : foo){
            printf("%d\n", r);
        }
    }
    return 0;
}

Submission Info

Submission Time
Task B - Splatter Painting
User jki14
Language C++14 (GCC 5.4.1)
Score 200
Code Size 2666 Byte
Status TLE
Exec Time 2104 ms
Memory 11252 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:84:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d", &u, &v);
                                  ^
./Main.cpp:90:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &q);
                        ^
./Main.cpp:94:40: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d%d", &v, &d, &c);
                                        ^

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 200 / 200 0 / 500
Status
AC × 2
AC × 19
AC × 30
TLE × 5
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 1 ms 256 KB
00_example_02.txt AC 1 ms 256 KB
10_01.txt AC 2 ms 256 KB
10_02.txt AC 1 ms 256 KB
10_03.txt AC 1 ms 256 KB
10_04.txt AC 1 ms 256 KB
10_05.txt AC 1 ms 256 KB
10_06.txt AC 1 ms 256 KB
10_07.txt AC 1 ms 384 KB
10_08.txt AC 6 ms 384 KB
10_09.txt AC 5 ms 384 KB
10_10.txt AC 6 ms 384 KB
10_11.txt AC 6 ms 384 KB
10_12.txt AC 6 ms 384 KB
10_13.txt AC 2 ms 384 KB
10_14.txt AC 2 ms 384 KB
10_15.txt AC 2 ms 384 KB
10_16.txt AC 36 ms 512 KB
10_17.txt AC 38 ms 512 KB
20_01.txt TLE 2104 ms 9332 KB
20_02.txt AC 1986 ms 11252 KB
20_03.txt TLE 2104 ms 9332 KB
20_04.txt AC 106 ms 1664 KB
20_05.txt AC 10 ms 384 KB
20_06.txt AC 13 ms 4480 KB
20_07.txt AC 7 ms 512 KB
20_08.txt AC 1695 ms 2168 KB
20_09.txt AC 5 ms 512 KB
20_10.txt AC 136 ms 1912 KB
20_11.txt TLE 2103 ms 2168 KB
20_12.txt AC 57 ms 7616 KB
20_13.txt AC 188 ms 8948 KB
20_14.txt AC 223 ms 8948 KB
20_15.txt TLE 2104 ms 10480 KB
20_16.txt TLE 2104 ms 10480 KB