Submission #345642

#TimeUsernameProblemLanguageResultExecution timeMemory
345642pggpPaint (COI20_paint)C++14
8 / 100
3085 ms24004 KiB
#include <bits/stdc++.h> using namespace std; int R, S; int parent[250000]; int siz[250000]; int find(int x){ if(parent[x] == x){ return x; } return parent[x] = find(parent[x]); } void un(int x, int y){ if(x == y) return; if(siz[x] > siz[y]){ parent[find(x)] = find(y); siz[x] += siz[y]; } else{ parent[find(x)] = find(y); siz[y] += siz[x]; } } vector < int > E[250000]; int col[250000]; bool used[250000]; stack < int > us; void dfs(int v, int c){ used[v] = true; us.push(v); int c1 = col[v]; for(int ver : E[v]){ if(!used[ver] and col[ver] == col[v]){ dfs(ver, c); } } col[v] = c; } void color(int v, int c){ dfs(v, c); while(!us.empty()){ used[us.top()] = false; us.pop(); } } void print_output(){ for (int y = 0; y < R; ++y) { for (int x = 0; x < S; ++x) { cout << col[find(y * S + x)] << " "; } cout << endl; } } int main(){ cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false); cin >> R >> S; for (int i = 0; i < R * S; ++i) { col[i] = 100001 + i; parent[i] = i; if(i % S != S - 1){ E[i].push_back(i + 1); } if(i % S != 0){ E[i].push_back(i - 1); } if(i >= S){ E[i].push_back(i - S); } if(i < R*S - S){ E[i].push_back(i + S); } } for (int y = 0; y < R; ++y) { for (int x = 0; x < S; ++x) { int c; cin >> c; color(find(y * S + x), c); //print_output(); } } int q; cin >> q; while(q--){ int r, s, c; cin >> r >> s >> c; r--; s--; color(find(r * S + s), c); } print_output(); }

Compilation message (stderr)

paint.cpp: In function 'void dfs(int, int)':
paint.cpp:40:6: warning: unused variable 'c1' [-Wunused-variable]
   40 |  int c1 = col[v];
      |      ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...