Submission #861305

#TimeUsernameProblemLanguageResultExecution timeMemory
861305nnhzzzTracks in the Snow (BOI13_tracks)C++14
97.81 / 100
578 ms137648 KiB
#include<bits/stdc++.h> using namespace std; #define REP(i,a,b) for(int i = (a); i<=(b); ++i) #define REPD(i,a,b) for(int i = (a); i>=(b); --i) #define REPDIS(i,a,b,c) for(int i = (a); i<=(b); i += c) #define task "test" #define task1 "nnhzzz" #define ALL(x) (x).begin(),(x).end() #define SZ(x) (int)(x).size() #define MASK(x) (1LL<<x) #define BIT(x,i) ((x>>i)&1LL) #define vi vector<int> #define vvi vector<vi> #define pii pair<int,int> #define vpii vector<pii> #define fi first #define se second #define ld long double #define ll long long //-------------------------------------------------------------------------------// template<typename T> bool mini(T &a, T b){if(a>b){a=b;return true;}return false;} template<typename T> bool maxi(T &a, T b){if(a<b){a=b;return true;}return false;} //-------------------------------------------------------------------------------// const int MAXN = 4e3+7,N = 1e5+7,inf = 1e9,LOG = 20; const int MOD = 1e9+7,MOD1 = 123456789; const int dx[] = {1,0,0,-1}; const int dy[] = {0,1,-1,0}; //-------------------------------------------------------------------------------// char c[MAXN][MAXN]; int d[MAXN][MAXN]; int n,m,res = 0; bool ok(int x, int y){ return (x>=1 && y>=1 && x<=n && y<=m); } void solve(){ cin >> n >> m; REP(i,1,n) REP(j,1,m) cin >> c[i][j]; deque<pii> q; d[1][1] = 1; q.emplace_back(1,1); while(SZ(q)!=0){ int x = q.front().fi,y = q.front().se; q.pop_front(); REP(i,0,3){ int nx = x+dx[i],ny = y+dy[i]; if(ok(nx,ny)==false || c[nx][ny]=='.' || d[nx][ny]!=0) continue; if(c[x][y]==c[nx][ny]){ d[nx][ny] = d[x][y]; q.emplace_front(nx,ny); }else{ maxi(res,d[x][y]+1); d[nx][ny] = d[x][y]+1; q.emplace_back(nx,ny); } } } cout << res; } signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); if(fopen(task".inp","r")){ freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } if(fopen(task1".inp","r")){ freopen(task1".inp","r",stdin); freopen(task1".out","w",stdout); } solve(); return 0; }

Compilation message (stderr)

tracks.cpp: In function 'int main()':
tracks.cpp:68:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   68 |         freopen(task".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
tracks.cpp:69:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   69 |         freopen(task".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
tracks.cpp:72:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   72 |         freopen(task1".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
tracks.cpp:73:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   73 |         freopen(task1".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...