Submission #2211158


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() const{
        return this->v;
    }
    int getD() const{
        return this->d;
    }
    int getC() const{
        return this->c;
    }
};

vector<int> painting(const int n, const vector<Operation> &operations, const vector<Vertice> &vertices){
    vector<int> foo(n, -1);
    vector<int> dst(n, 0);
    vector<int> vst(n, -1);
    for(size_t i=operations.size()-1; ~i; i--){
        const Operation &operation=operations[i];
        queue<Vertice*> que;
        dst[operation.getV()]=operation.getD();
        if(dst[operation.getV()]>vst[operation.getV()]){
            vst[operation.getV()]=dst[operation.getV()];
            que.push((Vertice*)(&vertices[operation.getV()]));
        }
        for(; !que.empty(); que.pop()){
            Vertice *u=que.front();
            if(!~foo[u->getIndex()])
                foo[u->getIndex()]=operation.getC();
            if(dst[u->getIndex()]>0){
                for(Vertice *v : u->getNeighbors()){
                    dst[v->getIndex()]=dst[u->getIndex()]-1;
                    if(dst[v->getIndex()]>vst[v->getIndex()]){
                        que.push(v);
                        vst[v->getIndex()]=dst[v->getIndex()];
                    }
                }
            }
        }
    }
    for(int &x : foo){
        x=max(x, 0);
    }
    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 0
Code Size 2931 Byte
Status WA
Exec Time 161 ms
Memory 10480 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:89: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:95:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &q);
                        ^
./Main.cpp:99: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 0 / 200 0 / 500
Status
AC × 2
AC × 12
WA × 7
AC × 21
WA × 14
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 WA 1 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 WA 1 ms 256 KB
10_06.txt AC 1 ms 256 KB
10_07.txt AC 1 ms 256 KB
10_08.txt WA 3 ms 384 KB
10_09.txt WA 3 ms 384 KB
10_10.txt WA 3 ms 384 KB
10_11.txt WA 3 ms 384 KB
10_12.txt WA 3 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 3 ms 512 KB
10_17.txt AC 3 ms 512 KB
20_01.txt WA 147 ms 9588 KB
20_02.txt WA 161 ms 9588 KB
20_03.txt WA 160 ms 9588 KB
20_04.txt WA 15 ms 1664 KB
20_05.txt WA 4 ms 384 KB
20_06.txt AC 13 ms 4480 KB
20_07.txt AC 4 ms 512 KB
20_08.txt AC 30 ms 2168 KB
20_09.txt AC 4 ms 512 KB
20_10.txt WA 33 ms 1912 KB
20_11.txt WA 38 ms 2168 KB
20_12.txt AC 53 ms 7616 KB
20_13.txt AC 87 ms 8948 KB
20_14.txt AC 108 ms 8948 KB
20_15.txt AC 108 ms 10480 KB
20_16.txt AC 92 ms 10480 KB