Submission #876390

#TimeUsernameProblemLanguageResultExecution timeMemory
876390vjudge1Growing Vegetable is Fun 3 (JOI19_ho_t3)C++17
0 / 100
0 ms620 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back //emplace_back #define pp pop_back #define pii pair<int, int> //pair<int, int> #define all(x) (x).begin(),(x).end() #define mp(a,b) make_pair(a , b) #define lb lower_bound #define ub upper_bound #define sz(x) (int)(x).size() #define F first #define S second #define bg(x) (x).begin() #define For(x, n) for(int (x) = 0 ; (x) < (n) ; (x)++) #define debug(x) cout << #x << " : " << x << endl #define endl (char)(10) #define arr(x) array<int , (x)> #define yes cout << "YES" << endl #define no cout << "NO" << endl #define FAST ios_base::sync_with_stdio(0);cin.tie(0); ll Sum(ll a , ll b , ll MOD) { a %= MOD; b %= MOD; a += b; return a % MOD; } ll Mul(ll a , ll b , ll MOD) { a %= MOD; b %= MOD; a *= b; return a % MOD; } ll Pow(ll a , ll b , ll MOD) { ll res = 1; while(b) { if((b & 1))res = Mul(res , a , MOD); a = Mul(a , a , MOD); b >>= 1; } return res; } ll Min(ll a , ll b) { if(a > b)return b; return a; } ll Max(ll a , ll b) { if(a > b)return a; return b; } ll Ceil(ll a , ll b) { if(a % b)return (a/b)+1; return a/b; } ///////////////////// //VALS const int maxn = 5000; int n,m; string s[maxn]; bool vis[maxn][maxn]; int ans = 0; int x[] = {1,-1,0,0}; int y[] = {0,0,1,-1}; ///////////////////// //FUNCTIONS inline void bfs(queue<pii> &q1 , queue<pii> &q2, int d) { if(q1.empty())return; ans = d; while(!q1.empty()) { pii p = q1.front(); q1.pop(); //debug(p.F); //debug(p.S); For(i,4) { if(p.F + x[i] < 0 or p.F + x[i] >= n or p.S + y[i] < 0 or p.S + y[i] >= m or s[p.F + x[i]][p.S + y[i]] == '.' or vis[p.F + x[i]][p.S + y[i]] == true)continue; vis[p.F + x[i]][p.S + y[i]] = true; bool flag = (s[p.F + x[i]][p.S + y[i]] == s[p.F][p.S]); //debug(i); //debug(flag); if(flag) q1.push(mp(p.F + x[i], p.S + y[i])); else q2.push(mp(p.F + x[i], p.S + y[i])); } } bfs(q2, q1, d+1); } ///////////////////// //SOLVE ///////////////////// //MAIN int main() { FAST; cin >> n >> m; For(i,n)cin >> s[i]; vis[0][0] = 1; queue<pii> q1, q2; q1.push({0,0}); bfs(q1,q2,1); cout << ans << "\n"; return 0; } ///////////////////// /* ZZZZZZZ A M M IIIIIII N N Z A A M M M M I NN N Z A A M M M M I N N N Z AAAAAAA M M M I N N N Z A A M M I N N N Z A A M M I N NN ZZZZZZZ A A M M IIIIIII N N TREE */

Compilation message (stderr)

joi2019_ho_t3.cpp: In function 'void bfs(std::queue<std::pair<int, int> >&, std::queue<std::pair<int, int> >&, int)':
joi2019_ho_t3.cpp:19:27: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   19 | #define For(x, n) for(int (x) = 0 ; (x) < (n) ; (x)++)
      |                           ^
joi2019_ho_t3.cpp:99:3: note: in expansion of macro 'For'
   99 |   For(i,4)
      |   ^~~
joi2019_ho_t3.cpp: In function 'int main()':
joi2019_ho_t3.cpp:19:27: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   19 | #define For(x, n) for(int (x) = 0 ; (x) < (n) ; (x)++)
      |                           ^
joi2019_ho_t3.cpp:127:2: note: in expansion of macro 'For'
  127 |  For(i,n)cin >> s[i];
      |  ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...