Submission #831214

#TimeUsernameProblemLanguageResultExecution timeMemory
831214Srivardhan_MTracks in the Snow (BOI13_tracks)C++14
0 / 100
2110 ms322484 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> using namespace std; const long long infty = 1e18; #define num1 1000000007 #define num2 998244353 #define rep(i,a,n) for(ll i=a;i<n;i++) #define repd(i,a,n) for(ll i=a; i>=n; i--) #define pb push_back #define pob pop_back #define f first #define s second #define fix(f,n) std::fixed<<std::setprecision(n)<<f #define all(x) x.begin(), x.end() #define M_PI 3.14159265358979323846 #define epsilon (double)(0.000000001) #define popcount __builtin_popcountll #define fileio(x) freopen("input.txt", "r", stdin); freopen(x, "w", stdout); #define out(x) cout << ((x) ? "Yes" : "No")<<endl; #define len(x) x.size() #define vvll(vec,n,m) vector<vector<long long>> vec(n, vector<long long> (m)) #define start_clock() auto start_time = std::chrono::high_resolution_clock::now(); #define measure() auto end_time = std::chrono::high_resolution_clock::now(); cerr << (end_time - start_time)/std::chrono::milliseconds(1) << "ms" << endl; #define println(x) cout<<x<<"\n"; typedef long long ll; typedef long double ld; typedef vector<long long> vll; typedef pair<long long, long long> pll; typedef vector<pair<long long, long long>> vpll; typedef vector<int> vii; ll sqr(ll x){ return x*x; } void print(vector<vll> &v){ cout<<"=========================="<<endl; rep(i, 0, v.size()) { rep(j, 0, v[i].size()) cout<<v[i][j]<<" "; cout<<endl; } cout<<"=========================="<<endl; } void print(vll &v){ cout<<"=========================="<<endl; rep(i, 0, v.size()) cout<<v[i]<<" "; cout<<endl; cout<<"=========================="<<endl; } ll n, m; ll dx[4]{1, -1, 0, 0}, dy[4]{0, 0, 1, -1}; ll inside(ll x, ll y, vector<string> &v){ if(x<0 || x>=n || y<0 || y>=m || v[x][y] == '.') return 0; return 1; } void solve(){ cin>>n>>m; vector<string> vec(n); rep(i,0,n) cin>>vec[i]; vector<vll> d(n, vll(m, infty)); d[0][0] = 0; deque<pll> q; q.push_back({0, 0}); ll maxi = 0; while(!q.empty()){ pll pr = q.front(); ll u = pr.f; ll v = pr.s; maxi = max(maxi, d[u][v]); rep(i, 0, 4){ ll x= u+dx[i]; ll y = v+dy[i]; if(!inside(x, y, vec)) continue; ll w = (vec[u][v] == vec[x][y])? 0: 1; if(d[u][v]+w < d[x][y]){ d[x][y] = d[u][v]+w; if(w == 1) q.push_back({x, y}); else q.push_front({x, y}); } } } cout<<maxi+1<<endl; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); ll t = 1; // cin>>t; while(t--){ solve(); } }

Compilation message (stderr)

tracks.cpp: In function 'void print(std::vector<std::vector<long long int> >&)':
tracks.cpp:9:32: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::vector<long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 | #define rep(i,a,n) for(ll i=a;i<n;i++)
......
   42 |     rep(i, 0, v.size()) {
      |         ~~~~~~~~~~~~~~          
tracks.cpp:42:5: note: in expansion of macro 'rep'
   42 |     rep(i, 0, v.size()) {
      |     ^~~
tracks.cpp:9:32: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 | #define rep(i,a,n) for(ll i=a;i<n;i++)
......
   43 |         rep(j, 0, v[i].size()) cout<<v[i][j]<<" ";
      |             ~~~~~~~~~~~~~~~~~   
tracks.cpp:43:9: note: in expansion of macro 'rep'
   43 |         rep(j, 0, v[i].size()) cout<<v[i][j]<<" ";
      |         ^~~
tracks.cpp: In function 'void print(vll&)':
tracks.cpp:9:32: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 | #define rep(i,a,n) for(ll i=a;i<n;i++)
......
   50 |     rep(i, 0, v.size()) cout<<v[i]<<" ";
      |         ~~~~~~~~~~~~~~          
tracks.cpp:50:5: note: in expansion of macro 'rep'
   50 |     rep(i, 0, v.size()) cout<<v[i]<<" ";
      |     ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...