제출 #950388

#제출 시각아이디문제언어결과실행 시간메모리
950388arbuzickCell Automaton (JOI23_cell)C++17
16 / 100
8042 ms2097152 KiB
#include <bits/stdc++.h> using namespace std; void solve() { int n, q; cin >> n >> q; vector<pair<int, int>> xy(n); for (int i = 0; i < n; ++i) { cin >> xy[i].first >> xy[i].second; } vector<int> t(q); for (int i = 0; i < q; ++i) { cin >> t[i]; } vector<int> ans(t[q - 1] + 1); ans[0] = xy.size(); set<pair<int, int>> black, gray; for (int i = 0; i < n; ++i) { black.insert(xy[i]); } for (int i = 1; i <= t[q - 1]; ++i) { set<pair<int, int>> black_nw; for (auto [x, y] : black) { if (!black.count({x + 1, y}) && !gray.count({x + 1, y})) { black_nw.emplace(x + 1, y); } if (!black.count({x - 1, y}) && !gray.count({x - 1, y})) { black_nw.emplace(x - 1, y); } if (!black.count({x, y + 1}) && !gray.count({x, y + 1})) { black_nw.emplace(x, y + 1); } if (!black.count({x, y - 1}) && !gray.count({x, y - 1})) { black_nw.emplace(x, y - 1); } } gray = black; black = black_nw; ans[i] = black.size(); } for (int i = 0; i < q; ++i) { cout << ans[t[i]] << '\n'; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin >> t; while (t--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...