Submission #3440558
Source Code Expand
#include<bits/stdc++.h>
#define MAX_N 100001
#define INF_INT 2147483647
#define INF_LL 9223372036854775807
#define REP(i,n) for(int i=0;i<(int)(n);i++)
using namespace std;
typedef long long int ll;
typedef pair<int,int> P;
int dx[4] = {1,0,0,-1};
int dy[4] = {0,1,-1,0};
int W,H,N;
int x1[1001],x2[1001],yy1[1001],yy2[1001];
int compress(int *z1,int *z2, int w){
vector<int> zs(0);
for(int i=0;i<N;i++){
for(int d=0;d<=1;d++){
int tz1 = z1[i]+d-1,tz2 = z2[i]+d;
if(tz1 >= 0 && tz1 < w) zs.push_back(tz1);
if(tz2 >= 0 && tz2 < w) zs.push_back(tz2);
}
}
zs.push_back(0);
zs.push_back(w-1);
sort(zs.begin(),zs.end());
zs.erase(unique(zs.begin(),zs.end()),zs.end());
for(int i=0;i<N;i++){
z1[i] = lower_bound(zs.begin(),zs.end(),z1[i])-zs.begin();
z2[i] = lower_bound(zs.begin(),zs.end(),z2[i])-zs.begin();
}
return zs.size();
}
int main()
{
int w,h,cnt=0;
cin >> W >> H;
cin >> N;
REP(i,N){cin >> x1[i] >> yy1[i] >> x2[i] >> yy2[i];
x2[i]--;yy2[i]--;
}
W = compress(x1,x2,W);
H = compress(yy1,yy2,H);
vector<vector<short> > imos = vector<vector<short> >(H+1,vector<short>(W+1,0));
for(int i=0;i<N;i++){
imos[yy1[i]][x1[i]] += 1;
imos[yy2[i]+1][x1[i]] += -1;
imos[yy1[i]][x2[i]+1] += -1;
imos[yy2[i]+1][x2[i]+1] += 1;
}
//横いもす
for(int i=0;i<H;i++)
for(int j=0;j<W;j++){
imos[i][j+1] += imos[i][j];
}
//縦いもす
for(int j=0;j<W;j++)
for(int i=0;i<H;i++){
imos[i+1][j] += imos[i][j];
}
queue<P> que;
for(int i=0;i<H;i++)
for(int j=0;j<W;j++){
if(imos[i][j] == 0){
que.push(P(j,i));
while(!que.empty()){
P p=que.front();que.pop();
if(p.first >= W || p.first < 0 || p.second >= H || p.second < 0)
continue;
if(imos[p.second][p.first] > 0)
continue;
imos[p.second][p.first] = 1;
for(int k=0;k<4;k++)
que.push(P(p.first+dx[k],p.second+dy[k]));
}
cnt++;
}
}
cout << cnt << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
E - ペンキの色 |
User |
makss |
Language |
C++14 (GCC 5.4.1) |
Score |
20 |
Code Size |
2152 Byte |
Status |
AC |
Exec Time |
675 ms |
Memory |
31744 KB |
Judge Result
Set Name |
set01 |
set02 |
set03 |
set04 |
set05 |
set06 |
set07 |
set08 |
set09 |
set10 |
set11 |
set12 |
set13 |
set14 |
set15 |
set16 |
set17 |
set18 |
set19 |
set20 |
Score / Max Score |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
1 / 1 |
Status |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set Name |
Test Cases |
set01 |
data1 |
set02 |
data2 |
set03 |
data3 |
set04 |
data4 |
set05 |
data5 |
set06 |
data6 |
set07 |
data7 |
set08 |
data8 |
set09 |
data9 |
set10 |
data10 |
set11 |
data11 |
set12 |
data12 |
set13 |
data13 |
set14 |
data14 |
set15 |
data15 |
set16 |
data16 |
set17 |
data17 |
set18 |
data18 |
set19 |
data19 |
set20 |
data20 |
Case Name |
Status |
Exec Time |
Memory |
data1 |
AC |
1 ms |
256 KB |
data10 |
AC |
33 ms |
2304 KB |
data11 |
AC |
159 ms |
17920 KB |
data12 |
AC |
242 ms |
17920 KB |
data13 |
AC |
147 ms |
8192 KB |
data14 |
AC |
202 ms |
8192 KB |
data15 |
AC |
227 ms |
8192 KB |
data16 |
AC |
304 ms |
31744 KB |
data17 |
AC |
191 ms |
15744 KB |
data18 |
AC |
508 ms |
20352 KB |
data19 |
AC |
675 ms |
31616 KB |
data2 |
AC |
1 ms |
256 KB |
data20 |
AC |
84 ms |
8192 KB |
data3 |
AC |
1 ms |
256 KB |
data4 |
AC |
1 ms |
256 KB |
data5 |
AC |
1 ms |
256 KB |
data6 |
AC |
1 ms |
256 KB |
data7 |
AC |
4 ms |
512 KB |
data8 |
AC |
4 ms |
512 KB |
data9 |
AC |
27 ms |
2176 KB |