Submission #929809

#TimeUsernameProblemLanguageResultExecution timeMemory
929809sofiefuCell Automaton (JOI23_cell)C++14
4 / 100
8077 ms703588 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define int long long #define vo vector #define fi first #define se second #define pr(x) cerr << #x << " " << x << endl; #define sz(x) x.size() typedef vo<int> vi; typedef pair<int, int> pii; #define rep(i, a, b) for(ll i = (a); i<(b); i++) ll const inf = LLONG_MAX, mxn = 51; int n, q, ans[mxn]; map<pii, int> coordinatesOdd; //coordinate to color black, grey, white map<pii, int> coordinatesEven; int dir[4][2] = {{1, 0}, {-1, 0}, {0, -1}, {0, 1}} ; void solve(int t, map<pii, int> &coordinates, map<pii, int> &other){ other.clear(); for(auto c: coordinates){ int col = c.se; if(col == 1){ ans[t]++; other[c.fi] = 2; for(auto x: dir){ ll nr = x[0] + c.fi.fi, nc = x[1] + c.fi.se; if(!coordinates.count({nr, nc})){ other[{nr, nc}] = 1; } } } } } signed main(){ cin>>n>>q; rep(i, 0, n){ int ri, ci; cin>>ri>>ci; coordinatesEven[{ri, ci}] = 1; } rep(t, 0, 50){ if(t%2==0){ solve(t, coordinatesEven, coordinatesOdd); } else{ solve(t, coordinatesOdd, coordinatesEven); } } rep(i, 0, q){ int ti; cin>>ti; cout << ans[ti] << "\n"; } }
#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...