Submission #00097


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;
vector<int> x,y;
queue<P>que;
int main(){
ios_base::sync_with_stdio(false);
int h,w,n,q;
int dx[]={0,1,-1,0};
int dy[]={1,0,0,-1};
cin >> h >> w >> n >> q;
int xs[2][n],ys[2][n];
for(int i=0;i<n;i++){
cin >> xs[0][i] >>ys[0][i] >> xs[1][i] >> ys[1][i];
x.push_back(xs[0][i]);
y.push_back(ys[0][i]);
for(int j=0;j<4;j++){
int nx = xs[0][i]+dx[j];
int ny = ys[0][i]+dy[j];
if(nx >= 0 && nx < w && ny >= 0 && ny < h){
x.push_back(nx);
y.push_back(ny);
}
}
x.push_back(xs[1][i]);
y.push_back(ys[1][i]);
for(int j=0;j<4;j++){
int nx = xs[1][i]+dx[j];
int ny = ys[1][i]+dy[j];
if(nx >= 0 && nx < w && ny >= 0 && ny < h){
x.push_back(nx);
y.push_back(ny);
}
}
}
sort(x.begin(),x.end());
x.erase( unique(x.begin(),x.end()), x.end() );
sort(y.begin(),y.end());
y.erase( unique(y.begin(),y.end()), y.end() );
long long maze[y.size()+100][x.size()+100];
for(int i=0;i<=y.size();i++){
for(int j=0;j<=x.size();j++){
maze[i][j] = 0;
}
}
for(int i=0;i<n;i++){
if(xs[0][i] == xs[1][i]){
int first = find(y.begin(),y.end(), ys[0][i])-y.begin();
int end = find(y.begin(),y.end(), ys[1][i])-y.begin();
int rock = find(x.begin(),x.end(), xs[0][i])-x.begin();
for(int j=first;j<=end;j++){
maze[j][rock] = -1;
}
} else{
int first = find(x.begin(),x.end(), xs[0][i])-x.begin();
int end = find(x.begin(),x.end(), xs[1][i])-x.begin();
int rock = find(y.begin(),y.end(), ys[0][i])-y.begin();
for(int j=first;j<=end;j++){
maze[rock][j] = -1;
}
}
}
//幅
long long color = 0;
for(int i=0;i<y.size();i++){
for(int j=0;j<x.size();j++){
if(maze[i][j] == 0){
color++;
que.push(P(i,j)); //y x
maze[i][j] = color;
while(!que.empty()){
P now = que.front(); que.pop();
int xx = now.second;
int yy = now.first;
for(int k=0;k<4;k++){
int nx = xx+dx[k];
int ny = yy+dy[k];
if(nx >= 0 && nx < x.size() && ny >= 0 && ny < y.size() && maze[ny][nx] == 0){
maze[ny][nx] = color;
que.push(P(ny,nx));
}
}
}
}
}
}
for(int cas=0;cas<q;cas++){
int a,b,c,d;
P sx,sy,gx,gy;
sx.second = gx.second = x.size()-1;
sy.second = gy.second = y.size()-1;
cin >> a >> b >> c >> d;
for(int j=0;j<x.size();j++){
if(x[j] <= a){
sx.first = j;
} else if(sx.second == x.size()-1){
sx.second = j;
}
if(x[j] <= c){
gx.first = j;
} else if(gx.second == x.size()-1){
gx.second = j;
}
}
for(int j=0;j<y.size();j++){
if(y[j] <= b){
sy.first = j;
} else if(sy.second == y.size()-1){
sy.second = j;
}
if(y[j] <= d){
gy.first = j;
} else if(gy.second == y.size()-1){
gy.second = j;
}
}
int data[2][2]={};
bool flag = false;
if(maze[sy.first][sx.first] != -1){
data[0][0] = sx.first;
data[0][1] = sy.first;
} else if(maze[sy.first][sx.second] != -1){
data[0][0] = sx.second;
data[0][1] = sy.first;
} else if(maze[sy.second][sx.first] != -1){
data[0][0] = sx.first;
data[0][1] = sy.second;
} else if(maze[sy.second][sx.second] != -1){
data[0][0] = sx.second;
data[0][1] = sy.second;
} else{
flag = true;
}
if(maze[gy.first][gx.first] != -1){
data[1][0] = gx.first;
data[1][1] = gy.first;
} else if(maze[gy.first][gx.second] != -1){
data[1][0] = gx.second;
data[1][1] = gy.first;
} else if(maze[gy.second][gx.first] != -1){
data[1][0] = gx.first;
data[1][1] = gy.second;
} else if(maze[gy.second][gx.second] != -1){
data[1][0] = gx.second;
data[1][1] = gy.second;
} else{
flag = true;
}
if(flag) cout << "Broadcasting accident" << endl;
else if(maze[data[0][1]][data[0][0]] == maze[data[1][1]][data[1][0]]) cout << "Success" << endl;
else cout << "Broadcasting accident" << endl;
}
return 0;
}

ステータス

項目 データ
問題 0005 - 回れ雛月花 -Lunatic
ユーザー名 ei1612
投稿日時 2017-12-22 15:52:16
言語 C++11
状態 Wrong Answer
得点 0
ソースコード長 4293 Byte
最大実行時間 139 ms
最大メモリ使用量 12056 KB

セット

セット 得点 Cases
1 Burn 0 / 35 Input0* , Input10
2 Out 0 / 140 Input[0-2]* , Input30
3 Misfortune 0 / 175 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
Input01 WA 21 ms 480 KB
1
2
3
Input02 AC 20 ms 420 KB
1
2
3
Input03 WA 16 ms 572 KB
1
2
3
Input04 AC 17 ms 624 KB
1
2
3
Input05 WA 16 ms 440 KB
1
2
3
Input06 AC 19 ms 484 KB
1
2
3
Input07 WA 17 ms 536 KB
1
2
3
Input08 AC 16 ms 552 KB
1
2
3
Input09 AC 20 ms 620 KB
1
2
3
Input10 WA 22 ms 636 KB
1
2
3
Input11 RE 139 ms 640 KB
2
3
Input12 AC 22 ms 2328 KB
2
3
Input13 RE 26 ms 476 KB
2
3
Input14 AC 21 ms 1408 KB
2
3
Input15 RE 20 ms 612 KB
2
3
Input16 AC 28 ms 5764 KB
2
3
Input17 RE 28 ms 736 KB
2
3
Input18 AC 20 ms 1012 KB
2
3
Input19 AC 45 ms 11600 KB
2
3
Input20 AC 22 ms 1164 KB
2
3
Input21 AC 25 ms 3668 KB
2
3
Input22 AC 16 ms 544 KB
2
3
Input23 AC 18 ms 3236 KB
2
3
Input24 AC 17 ms 684 KB
2
3
Input25 AC 21 ms 2032 KB
2
3
Input26 AC 33 ms 7580 KB
2
3
Input27 RE 24 ms 644 KB
2
3
Input28 AC 21 ms 2596 KB
2
3
Input29 RE 23 ms 680 KB
2
3
Input30 AC 30 ms 6864 KB
2
3
Input31 AC 42 ms 2620 KB
3
Input32 WA 94 ms 8136 KB
3
Input33 RE 24 ms 932 KB
3
Input34 RE 24 ms 968 KB
3
Input35 AC 32 ms 1384 KB
3
Input36 WA 67 ms 5692 KB
3
Input37 WA 127 ms 12056 KB
3
Input38 AC 35 ms 1468 KB
3
Input39 WA 57 ms 5048 KB
3
Input40 AC 70 ms 4768 KB
3
Input41 RE 27 ms 1812 KB
3
Input42 RE 25 ms 1712 KB
3
Input43 RE 26 ms 1740 KB
3
Input44 RE 25 ms 1768 KB
3
Input45 RE 23 ms 1792 KB
3
Input46 RE 29 ms 1696 KB
3
Input47 RE 23 ms 1720 KB
3
Input48 RE 22 ms 1620 KB
3
Input49 RE 20 ms 1772 KB
3
Input50 RE 30 ms 1672 KB
3