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 |
|
|
|
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 |