Submission #810920

#TimeUsernameProblemLanguageResultExecution timeMemory
810920taherCell Automaton (JOI23_cell)C++17
16 / 100
8064 ms339972 KiB
#include <bits/stdc++.h> using namespace std; const int dx[4] = {0, 0, -1, 1}; const int dy[4] = {1, -1, 0, 0}; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector<array<int, 2>> a(n); set<array<int, 2>> black, gray; for (int i = 0; i < n; i++) { cin >> a[i][0] >> a[i][1]; black.insert({a[i][0], a[i][1]}); } auto Advance = [&]() { set<array<int, 2>> nblack; for (auto cell : black) { int x = cell[0]; int y = cell[1]; for (int it = 0; it < 4; it++) { int nx = x + dx[it]; int ny = y + dy[it]; if (!gray.count({nx, ny}) && !black.count({nx, ny})) { nblack.insert({nx, ny}); } } } swap(gray, black); swap(black, nblack); }; int current_t = 0; auto SimulateTo = [&](int t) { while (current_t < t) { Advance(); current_t++; } return (int) black.size(); }; for (int i = 0; i < m; i++) { int timestamp; cin >> timestamp; cout << SimulateTo(timestamp) << '\n'; } 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...