Submission #70044278
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef signed long long ll;
#define _P(...) (void)printf(__VA_ARGS__)
#define FOR(x,to) for(x=0;x<(to);x++)
#define FORR(x,arr) for(auto& x:arr)
#define FORR2(x,y,arr) for(auto& [x,y]:arr)
#define ALL(a) (a.begin()),(a.end())
#define ZERO(a) memset(a,0,sizeof(a))
#define MINUS(a) memset(a,0xff,sizeof(a))
template<class T> bool chmax(T &a, const T &b) { if(a<b){a=b;return 1;}return 0;}
template<class T> bool chmin(T &a, const T &b) { if(a>b){a=b;return 1;}return 0;}
//-------------------------------------------------------
int H,W;
string S[12];
int TY,TX;
int memo[25][25][13][13][13][13];
int dfs(int dx,int dy,int ML,int MR,int MU,int MD) {
int num=0;
int y,x;
if(abs(dx)>12||abs(dy)>12) return 0;
if(memo[dx+12][dy+12][ML][MR][MU][MD]>=0) return memo[dx+12][dy+12][ML][MR][MU][MD];
int ret=1<<30;
memo[dx+12][dy+12][ML][MR][MU][MD]=1<<30;
FOR(y,H) FOR(x,W) {
if(x<ML) continue;
if(x+MR>=W) continue;
if(y<MU) continue;
if(y+MD>=H) continue;
if(S[y][x]=='#') num++;
}
int tx=dx+TX;
int ty=dy+TY;
if(tx>=0&&tx<W&&ty>=0&&ty<H&&S[ty][tx]=='#') {
if(tx>=ML&&tx+MR<W&&ty>=MU&&ty+MD<H) {
return 1<<30;
}
}
if(num==0) {
return memo[dx+12][dy+12][ML][MR][MU][MD]=0;
}
ret=min(ret,dfs(dx-1,dy,ML,max(MR,-(dx-1)),MU,MD)+1);
ret=min(ret,dfs(dx+1,dy,max(ML,dx+1),MR,MU,MD)+1);
ret=min(ret,dfs(dx,dy-1,ML,MR,MU,max(MD,-(dy-1)))+1);
ret=min(ret,dfs(dx,dy+1,ML,MR,max(MU,dy+1),MD)+1);
return memo[dx+12][dy+12][ML][MR][MU][MD]=ret;
}
void solve() {
int i,j,k,l,r,x,y; string s;
MINUS(memo);
cin>>H>>W;
FOR(y,H) {
cin>>S[y];
FOR(x,W) {
if(S[y][x]=='T') {
S[y][x]='.';
TY=y,TX=x;
}
}
}
int ret=dfs(0,0,0,0,0,0);
if(ret>=1<<30) ret=-1;
cout<<ret<<endl;
}
int main(int argc,char** argv){
string s;int i;
if(argc==1) ios::sync_with_stdio(false), cin.tie(0);
FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
cout.tie(0); solve(); return 0;
}
Submission Info
| Submission Time |
|
| Task |
E - Wind Cleaning |
| User |
kmjp |
| Language |
C++ 20 (gcc 12.2) |
| Score |
500 |
| Code Size |
2087 Byte |
| Status |
AC |
| Exec Time |
115 ms |
| Memory |
73420 KiB |
Compile Error
Main.cpp: In function ‘void solve()’:
Main.cpp:57:13: warning: unused variable ‘i’ [-Wunused-variable]
57 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:57:15: warning: unused variable ‘j’ [-Wunused-variable]
57 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:57:17: warning: unused variable ‘k’ [-Wunused-variable]
57 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:57:19: warning: unused variable ‘l’ [-Wunused-variable]
57 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:57:21: warning: unused variable ‘r’ [-Wunused-variable]
57 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp: In function ‘int main(int, char**)’:
Main.cpp:6:19: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^~~
Main.cpp:82:9: note: in expansion of macro ‘FOR’
82 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp:6:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^~~
Main.cpp:82:45: note: in expansion of macro ‘FOR’
82 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp:6:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^
Main.cpp:82:45: note: in expansion of macro ‘FOR’
82 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample00.txt, sample01.txt, sample02.txt |
| All |
sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt, testcase36.txt, testcase37.txt, testcase38.txt, testcase39.txt |
| Case Name |
Status |
Exec Time |
Memory |
| sample00.txt |
AC |
28 ms |
73148 KiB |
| sample01.txt |
AC |
28 ms |
73200 KiB |
| sample02.txt |
AC |
29 ms |
73232 KiB |
| testcase00.txt |
AC |
29 ms |
73224 KiB |
| testcase01.txt |
AC |
28 ms |
73232 KiB |
| testcase02.txt |
AC |
28 ms |
73296 KiB |
| testcase03.txt |
AC |
28 ms |
73084 KiB |
| testcase04.txt |
AC |
45 ms |
73196 KiB |
| testcase05.txt |
AC |
44 ms |
73196 KiB |
| testcase06.txt |
AC |
29 ms |
73228 KiB |
| testcase07.txt |
AC |
29 ms |
73228 KiB |
| testcase08.txt |
AC |
29 ms |
73148 KiB |
| testcase09.txt |
AC |
100 ms |
73292 KiB |
| testcase10.txt |
AC |
115 ms |
73272 KiB |
| testcase11.txt |
AC |
66 ms |
73272 KiB |
| testcase12.txt |
AC |
78 ms |
73356 KiB |
| testcase13.txt |
AC |
29 ms |
73288 KiB |
| testcase14.txt |
AC |
69 ms |
73420 KiB |
| testcase15.txt |
AC |
85 ms |
73276 KiB |
| testcase16.txt |
AC |
52 ms |
73148 KiB |
| testcase17.txt |
AC |
94 ms |
73272 KiB |
| testcase18.txt |
AC |
104 ms |
73256 KiB |
| testcase19.txt |
AC |
28 ms |
73200 KiB |
| testcase20.txt |
AC |
30 ms |
73156 KiB |
| testcase21.txt |
AC |
31 ms |
73240 KiB |
| testcase22.txt |
AC |
28 ms |
73120 KiB |
| testcase23.txt |
AC |
105 ms |
73256 KiB |
| testcase24.txt |
AC |
28 ms |
73224 KiB |
| testcase25.txt |
AC |
60 ms |
73188 KiB |
| testcase26.txt |
AC |
85 ms |
73212 KiB |
| testcase27.txt |
AC |
78 ms |
73284 KiB |
| testcase28.txt |
AC |
98 ms |
73272 KiB |
| testcase29.txt |
AC |
78 ms |
73284 KiB |
| testcase30.txt |
AC |
48 ms |
73168 KiB |
| testcase31.txt |
AC |
54 ms |
73196 KiB |
| testcase32.txt |
AC |
107 ms |
73288 KiB |
| testcase33.txt |
AC |
79 ms |
73280 KiB |
| testcase34.txt |
AC |
29 ms |
73224 KiB |
| testcase35.txt |
AC |
47 ms |
73276 KiB |
| testcase36.txt |
AC |
95 ms |
73144 KiB |
| testcase37.txt |
AC |
29 ms |
73200 KiB |
| testcase38.txt |
AC |
115 ms |
73192 KiB |
| testcase39.txt |
AC |
71 ms |
73300 KiB |