Submission #2211065


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<vector<int>> vst;
    vst.resize(n);
    for(vector<int> &row : vst){
        row.resize(12);
        for(int &cell : row){
            cell=0;
        }
    }
    for(size_t i=operations.size()-1; ~i; i--){
        const Operation &operation=operations[i];
        queue<Vertice*> que;
        que.push((Vertice*)(&vertices[operation.getV()]));
        dst[operation.getV()]=operation.getD();
        for(; !que.empty(); que.pop()){
            Vertice *u=que.front();
            if(vst[u->getIndex()][dst[u->getIndex()]])continue;
            vst[u->getIndex()][dst[u->getIndex()]]=1;
            if(!~foo[u->getIndex()])
                foo[u->getIndex()]=operation.getC();
            if(dst[u->getIndex()]>0){
                for(Vertice *v : u->getNeighbors()){
                    que.push(v);
                    dst[v->getIndex()]=dst[u->getIndex()]-1;
                }
            }
        }
    }
    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 2913 Byte
Status WA
Exec Time 250 ms
Memory 19456 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:92: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:98:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &q);
                        ^
./Main.cpp:102: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 2 ms 512 KB
10_08.txt WA 3 ms 640 KB
10_09.txt WA 3 ms 640 KB
10_10.txt WA 3 ms 640 KB
10_11.txt WA 3 ms 640 KB
10_12.txt WA 3 ms 640 KB
10_13.txt AC 2 ms 512 KB
10_14.txt AC 2 ms 512 KB
10_15.txt AC 2 ms 512 KB
10_16.txt AC 3 ms 640 KB
10_17.txt AC 3 ms 640 KB
20_01.txt WA 205 ms 17396 KB
20_02.txt WA 238 ms 17524 KB
20_03.txt WA 250 ms 17396 KB
20_04.txt WA 24 ms 2464 KB
20_05.txt WA 4 ms 384 KB
20_06.txt AC 22 ms 12160 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 34 ms 1912 KB
20_11.txt WA 45 ms 2168 KB
20_12.txt AC 75 ms 15040 KB
20_13.txt AC 158 ms 16372 KB
20_14.txt AC 180 ms 16116 KB
20_15.txt AC 176 ms 19456 KB
20_16.txt AC 222 ms 19456 KB