Submission #129942

#TimeUsernameProblemLanguageResultExecution timeMemory
129942rajarshi_basuNautilus (BOI19_nautilus)C++14
100 / 100
222 ms760 KiB
#include <iostream> #include <vector> #include <set> #include <iomanip> #include <algorithm> #include <functional> #include <stdio.h> #include <cmath> #include <queue> #include <string> #include <map> #include <fstream> #include <complex> #include <stack> #include <bitset> #include <set> #define FOR(i,n) for(int i=0;i<n;i++) #define FORE(i,a,b) for(int i=a;i<=b;i++) #define ll long long int #define vi vector<int> #define ii pair<int,int> #define pb push_back #define mp make_pair #define vv vector #define ff first #define ss second #define pll pair<ll,ll> #define cd complex<double> #define ld long double #define pld pair<ld,ld> #define iii pair<ii,int> using namespace std; const int MAXN = 501; const int MAXK = 60+10; bitset<MAXN> tempgrid[MAXN]; bitset<MAXN> grid[MAXN]; bitset<MAXN> permgrid[MAXN]; void clearT(){ FOR(i,MAXN)tempgrid[i].reset(); } void imprint(){ FOR(i,MAXN)grid[i] = grid[i] & permgrid[i]; } void copyto(){ FOR(i,MAXN)grid[i] = tempgrid[i]; } void shiftleft(){ FOR(i,MAXN)tempgrid[i] |= grid[i] << 1; } void shiftright(){ FOR(i,MAXN)tempgrid[i] |= grid[i] >> 1; } void shiftup(){ FOR(i,MAXN-1){ tempgrid[i] |= grid[i+1]; } } void shiftdown(){ FOR(i,MAXN-1)tempgrid[i+1] |= grid[i]; } int main(){ int r,c,m; cin >> r >> c >> m; FOR(i,r)permgrid[i].reset(); FOR(i,r){ string s; cin >> s; FOR(j,c){ if(s[j] == '.'){ //cout << "hihih" << endl; permgrid[i][j] = 1; } } } string x; cin >> x; clearT(); FOR(i,MAXN)grid[i].set(); imprint(); for(auto c : x){ clearT(); if(c == 'N'){ shiftup(); }else if(c == 'E'){ shiftleft(); }else if(c == 'W'){ shiftright(); }else if(c == 'S'){ shiftdown(); }else{ shiftup(); shiftdown(); shiftleft(); shiftright(); } copyto(); clearT(); imprint(); } int ctr = 0; FOR(i,MAXN){ ctr += grid[i].count(); } cout << ctr << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...