답안 #1039655

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1039655 2024-07-31T07:01:29 Z Name(#11031) Toy (CEOI24_toy) C++17
0 / 100
8 ms 8796 KB
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.1,sse4.2,popcnt,abm,mmx,avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;
using pii=array<int,2>;
#ifdef LOCAL
#include "debug.h"
#else
#define debug(...) 42
#endif
const int N=1505;
int h,w,k,l,a[N][N],HL[N][N],HR[N][N],VL[N][N],VR[N][N];
int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
pii S[2],E;
bool vis[N][N];
string s;
bool chk(int x,int y,int i,int j){
	// (x, y) -> (i, j)
	if(x==i){
		return min(VR[x][y],VR[i][j])-max(VL[x][y],VL[i][j])+1>=l;
	} else{
		return min(HR[x][y],HR[i][j])-max(HL[x][y],HL[i][j])+1>=k;
	}
}
int main(){
	ios::sync_with_stdio(false); cin.tie(0);
	cin>>w>>h>>k>>l;
	cin>>S[0][1]>>S[0][0]>>S[1][1]>>S[1][0];
	S[0][0]++;
	S[0][1]++;
	S[1][0]++;
	S[1][1]++;
	for(int i=1;i<=h;i++){
		cin>>s;
		for(int j=1;j<=w;j++){
			if(s[j-1]=='X') a[i][j]=1;
			else{
				a[i][j]=0;
				if(s[j-1]=='*') E={i,j};
			}
		}
	}
	for(int i=1;i<=h;i++) for(int j=1;j<=w;j++){
		int k=j;
		while(k+1<=w&&!a[i][k+1]) k++;
		for(int t=j;t<=k;t++){
			HL[i][t]=j;
			HR[i][t]=k;
		}
		j=k;
	}
	for(int i=1;i<=w;i++) for(int j=1;j<=h;j++){
		int k=j;
		while(k+1<=w&&!a[k+1][i]) k++;
		for(int t=j;t<=k;t++){
			VL[t][i]=j;
			VR[t][i]=k;
		}
		j=k;
	}
	queue<pii> que;
	vis[S[0][0]][S[1][1]]=1;
	que.push({S[0][0],S[1][1]});
	while(que.size()){
		pii p=que.front(); que.pop();
		for(int k=0;k<4;k++){
			int x=p[0]+dx[k],y=p[1]+dy[k];
			if(x<1||x>h||y<1||y>w||!chk(p[0],p[1],x,y)||vis[x][y]) continue;
			vis[x][y]=1;
			que.push({x,y});
		}
	}
	if(vis[E[0]][E[1]]) cout<<"YES\n";
	else cout<<"NO\n";
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 856 KB Output is correct
4 Correct 1 ms 1488 KB Output is correct
5 Correct 1 ms 1368 KB Output is correct
6 Incorrect 1 ms 1372 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 856 KB Output is correct
4 Correct 1 ms 1488 KB Output is correct
5 Correct 1 ms 1368 KB Output is correct
6 Incorrect 1 ms 1372 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 2 ms 1624 KB Output is correct
4 Correct 7 ms 8796 KB Output is correct
5 Correct 6 ms 8796 KB Output is correct
6 Correct 2 ms 2908 KB Output is correct
7 Correct 5 ms 8540 KB Output is correct
8 Correct 6 ms 8672 KB Output is correct
9 Correct 2 ms 4956 KB Output is correct
10 Correct 4 ms 8284 KB Output is correct
11 Correct 4 ms 8284 KB Output is correct
12 Correct 3 ms 5964 KB Output is correct
13 Correct 4 ms 8264 KB Output is correct
14 Correct 4 ms 8128 KB Output is correct
15 Correct 5 ms 8536 KB Output is correct
16 Correct 5 ms 8212 KB Output is correct
17 Correct 5 ms 8360 KB Output is correct
18 Correct 6 ms 8792 KB Output is correct
19 Correct 7 ms 8796 KB Output is correct
20 Correct 6 ms 8796 KB Output is correct
21 Correct 6 ms 8596 KB Output is correct
22 Correct 7 ms 8796 KB Output is correct
23 Correct 5 ms 8656 KB Output is correct
24 Correct 6 ms 8796 KB Output is correct
25 Correct 8 ms 8796 KB Output is correct
26 Correct 6 ms 8796 KB Output is correct
27 Correct 6 ms 8796 KB Output is correct
28 Correct 5 ms 8792 KB Output is correct
29 Correct 5 ms 8796 KB Output is correct
30 Correct 5 ms 8480 KB Output is correct
31 Incorrect 5 ms 8284 KB Output isn't correct
32 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 856 KB Output is correct
4 Correct 1 ms 1488 KB Output is correct
5 Correct 1 ms 1368 KB Output is correct
6 Incorrect 1 ms 1372 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 856 KB Output is correct
4 Correct 1 ms 1488 KB Output is correct
5 Correct 1 ms 1368 KB Output is correct
6 Incorrect 1 ms 1372 KB Output isn't correct
7 Halted 0 ms 0 KB -