Submission #1367983

#TimeUsernameProblemLanguageResultExecution timeMemory
1367983ivopavCell Automaton (JOI23_cell)C++20
16 / 100
109 ms11280 KiB
#include <bits/stdc++.h>
using namespace std;

using i64=long long int;


struct bfstyp{
    i64 x;
    i64 y;
    i64 dist;
};

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    i64 n;
    i64 q;
    cin >> n >> q;
    queue<bfstyp> lis={};
    vector<vector<bool>> bio(4050,vector<bool>(4050,0));
    for (i64 i=0;i<n;i++){
        i64 unos;
        i64 unos2;
        cin >> unos >> unos2;
        lis.push({unos+2005,unos2+2005,0});
        bio[unos+2005][unos2+2005]=1;
    }
    vector<i64> kol(1005,0);
    while (lis.size()>0){
        i64 x=lis.front().x;
        i64 y=lis.front().y;
        i64 dist=lis.front().dist;
        lis.pop();
        if (dist>1003){
            break;
        }
        kol[dist]++;
        if (!bio[x-1][y]){
            bio[x-1][y]=1;
            lis.push({x-1,y,dist+1});
        }
        if (!bio[x+1][y]){
            bio[x+1][y]=1;
            lis.push({x+1,y,dist+1});
        }
        if (!bio[x][y-1]){
            bio[x][y-1]=1;
            lis.push({x,y-1,dist+1});
        }
        if (!bio[x][y+1]){
            bio[x][y+1]=1;
            lis.push({x,y+1,dist+1});
        } 
    }
    for (i64 i=0;i<q;i++){
        i64 unos;
        cin >> unos;
        cout << kol[unos] << "\n";
    }
    
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...