QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#446317#4788. GravityKevin5307RE 468ms212896kbC++232.4kb2024-06-17 07:48:092024-06-17 07:48:10

Judging History

你现在查看的是最新测评结果

  • [2024-06-17 07:48:10]
  • 评测
  • 测评结果:RE
  • 用时:468ms
  • 内存:212896kb
  • [2024-06-17 07:48:09]
  • 提交

answer

//Author: Kevin
#include<bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(),(x).end()
#define rALL(x) (x).rbegin(),(x).rend()
#define srt(x) sort(ALL(x))
#define rev(x) reverse(ALL(x))
#define rsrt(x) sort(rALL(x))
#define sz(x) (int)(x.size())
#define inf 0x3f3f3f3f
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
using ll=long long;
using ull=unsigned long long;
using pii=pair<int,int>;
using i128=__int128;
void die(string S){puts(S.c_str());exit(0);}
int n,m;
string grid[1000005],ans[1000005];
vector<int> ind[1000005];
int fa[4000005];
inline int anc(int x)
{
	while(fa[x]!=x) x=fa[x]=fa[fa[x]];
	return x;
}
inline void join(int u,int v)
{
	fa[anc(u)]=anc(v);
}
vector<pii> G[4000005];
int dist[4000005];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>grid[i];
		ans[i]=string(m,'.');
	}
	for(int i=0;i<n;i++)
		ind[i].resize(m);
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			ind[i][j]=(i*m+j);
	for(int i=0;i<n*m;i++)
		fa[i]=i;
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			if(grid[i][j]=='#')
			{
				if(grid[i+1][j]=='#') join(ind[i][j],ind[i+1][j]);
				if(grid[i][j+1]=='#') join(ind[i][j],ind[i][j+1]);
			}
	for(int j=0;j<m;j++)
	{
		int lst=-1;
		for(int i=0;i<n;i++)
			if(grid[i][j]=='#')
			{
				if(~lst)
					G[anc(ind[i][j])].pb(anc(ind[lst][j]),i-lst-1);
				lst=i;
			}
	}
	memset(dist,0x3f,sizeof(dist));
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			if(grid[i][j]=='#')
				dist[anc(ind[i][j])]=min(dist[anc(ind[i][j])],n-i-1);
	priority_queue<pii,vector<pii>,greater<pii>> pq;
	for(int i=0;i<n*m;i++)
		if(fa[i]==i)
			pq.emplace(dist[i],i);
	while(!pq.empty())
	{
		int d=pq.top().first;
		int u=pq.top().second;
		pq.pop();
		if(dist[u]!=d) continue;
		for(auto [v,w]:G[u])
			if(dist[u]+w<dist[v])
			{
				dist[v]=dist[u]+w;
				pq.emplace(dist[v],v);
			}
	}
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			ans[i][j]='.';
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			if(grid[i][j]=='#')
				ans[i+dist[anc(ind[i][j])]][j]='#';
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
			putchar(ans[i][j]);
		putchar(10);
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 15ms
memory: 84956kb

input:

10 10
..........
..######..
..#....#..
..#.#..#..
..#..#.#..
..#....#..
..######..
..........
..#....#..
.......#..


output:

..........
..........
..######..
..#....#..
..#....#..
..#....#..
..#.##.#..
..######..
.......#..
..#....#..

result:

ok 10 lines

Test #2:

score: 0
Accepted
time: 468ms
memory: 212896kb

input:

1583 1799
#..###..##..#.####.##.##.###..#.....##..#.#.#.#......#.....##..#.##...#.#....#..##.###...#...##.###.#.....#.##.###...#..##.#...###..#.###.#...###..#.......#...#....#.#..#...##........#.#..#..##.....###...#..#.####..####...#..##......#........#..#.##.##..#..#....##.##.##..#..##.....###....#...

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1583 lines

Test #3:

score: 0
Accepted
time: 72ms
memory: 106212kb

input:

592 750
.......#..#.#......#.............#...............###..#..#.........#.#.......##.............#.#.#................#..#...#...#......#...#.............#..##..#.#..#..........#..##.#.#..#..#.#...#....#......####.........#..#......#...........#......#............#.###.......##.#..#.#.#...#.#.##....

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 592 lines

Test #4:

score: 0
Accepted
time: 163ms
memory: 129468kb

input:

1768 1394
###.###.#######.###.#####.####.##########################.########.###################################.#########################################.#########################.####################.##############.###########################.#######################.################.####.#.#######...

output:

###.###.#######.###.#####.####.##########################.########.###################################.#########################################.#########################.####################.##############.###########################.#######################.################.####...#################...

result:

ok 1768 lines

Test #5:

score: 0
Accepted
time: 106ms
memory: 120896kb

input:

517 1539
.#..#....#.......#..............#.#........................#................#.#.#.............................##.....#.#....#...#.......................#.##..........#...##.....#.......#....#............#.....#......................#....#...#...#......#...........#.............................

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 517 lines

Test #6:

score: 0
Accepted
time: 113ms
memory: 116356kb

input:

1145 1314
##########.###.#####.##.####...##.#####.#######.########.##.#####.######.###.###.########.#.##...######.##.#########.############################.####################################.########.#.###.###.##.###########.#.###########.##############.#.###################.#.##.###############.#...

output:

##########.###.#####.##.####...##.#####.#######.########.##.#####.######.###.###.########.#.##...######.##.#########.############################.####################################.########.#.###.###.##.###########.#.###########.##############.#.###################.#.##.###############.####.####.#...

result:

ok 1145 lines

Test #7:

score: 0
Accepted
time: 161ms
memory: 132280kb

input:

959 1029
...........#....#.....#.........#..#.#..#..#............#..#....#....#.#...##.#........###...###.#....#................#................#....##..##.....#.#.....#.#####...............#......#......#......#..#..#.....##.....#......##..#.##..##.#...##...#...#....#..#.#....#.......#...#.#...##....

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 959 lines

Test #8:

score: 0
Accepted
time: 214ms
memory: 167672kb

input:

1414 1827
.#############.###.#######.###..######.#.####.###.#####..##...##########.#..##.######.#..####.#####..##.##.###.#####.#..#.#####.###########.#.#.#####.##.##.#####...##.#####.####.#######.################.#..##.#####..####.###############.###..###########.##.#.#.########.###.###.#.#########....

output:

.#############.###.#######.###..######...####.###.#####..##...##########....##.######.#..####.#####..##.##.###.#####.#....#####.###########.#.#.#####.##.##.#####...##.#####.####.#######.################.#..##.#####..####.###############.###..###########.##.#.#.########.###.###.#.#########..#.#.#####...

result:

ok 1414 lines

Test #9:

score: 0
Accepted
time: 179ms
memory: 144648kb

input:

1206 1020
..#..............#...........................................#.....................#..........#.....#.........#....#........................#...........#...#...#.......#...#..#...#...................#.......#............#..#.....................#...................#.......................#...

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1206 lines

Test #10:

score: 0
Accepted
time: 74ms
memory: 109596kb

input:

1655 302
###..##.#..####.####...#...###..##..#..###.##..#..#########......#..##.#..#.#.#..##.##.#.###.#..#.#......##...#....#.#.##.#.###..###.#####.#..##....#..###....#.#...#....#....##.#....#####.#..####.#.###...##....#.##..#.#####.#.#.#.....#....#######...#.##..####..#.#..#.######.#.#.####...........

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1655 lines

Test #11:

score: 0
Accepted
time: 27ms
memory: 90844kb

input:

103 1848
#..#.###..##.####..#..#.######.##..##..#########.####.##.#.#####.###..#.###..####.#.###.#.#.#.######.#.#####..###.##.####.####..#####.##...#.#######.###.########.####....###...#..##.#..########..###....#######..#######.#..##.##.##.#....#.###.##..####.####.###..##.###.###.#.##..###..#..#####...

output:

#..#.###..##.####..#..#.######.##..##..#########.####.##.#.#####.###....###..####.#.###.#.#...######.#.#####..###.##.####.####..#####......#.#######.###.########.####....###......##.#..########..###....#######..#######.#..##.##...........###.##..####.####......##.###.###.#.##..###..#..#######...####...

result:

ok 103 lines

Test #12:

score: 0
Accepted
time: 166ms
memory: 148856kb

input:

1705 836
#.####.#...######.####.#.#..#.##.####.###..#.#####.#.##.##.#..##....#####..####.##.####..#.####.###....##....##.###.#......###.#####.#.###.#.##...####..###.#.######.####..#...########.##..#...###.#.##.####...#.#..##.####.######.#...#..##.####.##.#...##.#######..###.##.##.#.#.....####.###.#....

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1705 lines

Test #13:

score: 0
Accepted
time: 20ms
memory: 85064kb

input:

216 126
####################.###################.###########################.##.#######################.####################.#########
###.########.###############.###########.###.########.###########################################################.###########.
#######################.##############...

output:

####################.###################.###########################.##.#######################.####################.#########
###.########.###############.###########.###.########.###########################################################.###########.
#######################.####################.#...

result:

ok 216 lines

Test #14:

score: 0
Accepted
time: 49ms
memory: 95632kb

input:

143 1806
..#.##.##.#..###.##.##.#...##.#....##.##.##..####.##...#.##......#####...#.......#...####......#.....##.##...#.##....##....###..#..##.#....######....###.####...##..#..##.#.##..##...##..#...#...#..##.#...#..#.#.##...#..#.###..##..##..#.##.###.###..####.#.##..###.####.....#..#...###..#..........

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 143 lines

Test #15:

score: 0
Accepted
time: 47ms
memory: 105032kb

input:

880 578
#.####.#..#.#####.##.###########.###.#.......#.####.########.#######.#..#..#####..#.##.####.##.##.#.#######.##.######.##.###########..#.##.#..#.###..####.##.####.#.########.#.######.###.########.#.######..#####.#######.#.##.###.##.#.##.###.#.####.#..#####.######.########.######.###.#######.#...

output:

..........#.#####.##.###########.............#.####.########.#######.#..#..#####..#.##.####.##.##.#.#######....######.##.###########............###..####.##.####...########.#.######.###.########...######..#####.#######.#.##.###.##.#....###...........#####.######.########.######.....#######.#.##.###....

result:

ok 880 lines

Test #16:

score: 0
Accepted
time: 235ms
memory: 162628kb

input:

1689 1872
#####.###.#########.#.########.#########.#..##.###.#############.#####.##########.#####.####..###############..###..#########.#########.######...#.####.#######..##.####.###..#.#####.########..##########.#.###.#.###.######.####.#.############.##.#..####.###.#.##.###..###.############.#.####...

output:

#####.###.#########.#.########.#########.#..##.###.#############.#####.##########.#####.####..###############..###..#########.#########.######...#.####.#######.....####.###..#.#####.########..##########.#.###.#.###.######.####...############.##.#..####.###.#.##.###..###.############.#.########.#####...

result:

ok 1689 lines

Test #17:

score: 0
Accepted
time: 185ms
memory: 148304kb

input:

1461 866
...#........#..#..........................###...#..#...............##.#..............#.............#....##..#..............#...#..................#.......#..##.#........................#........##.......#...#...........#...........#...........##..................#........##.......#............

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1461 lines

Test #18:

score: 0
Accepted
time: 39ms
memory: 95844kb

input:

149 1851
#.##...####.####.#.###..###.##.#.###.#.#.########.#.#####.#..##.#.###.######.###....#.#####.##..#...##..#########.##.#..#.##.##.#####.##.##...######.#..#####.######.###..######.#...##.##########..#.#..#..###....##.#####.#..#.#.##.##.####.##.###..##.##.##..###..###.####......#...##.#..###.#....

output:

.......####........###..###.##...###.#.#..........................###.######.###....#.#####.##..#...##..#########.##......##....#####.##.##...######.#........######.###..######.#......##########..#.#..#..###.......#####........##.........##.###............###..###.####......#...##........#.............

result:

ok 149 lines

Test #19:

score: 0
Accepted
time: 87ms
memory: 110764kb

input:

1296 1076
##########################.############################.##################.#########.#############.##############################################################.######.###################.#####################################################################################################...

output:

##########################.############################.##################.#########.#############.##############################################################.######.###################.###############################################################################################################...

result:

ok 1296 lines

Test #20:

score: 0
Accepted
time: 401ms
memory: 186724kb

input:

1468 1530
..#.....##............#.....#.....#.#.........#.......#........#.#.#..#.....#.........#......#..#.#..###.....#.........#...#.........##..##.....#...#...##...#......#.####.....#.........#.#.#..........#.#.#...#..#.#........#.##..#.......................#.....#...#..........#....#..#.##..#.....

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1468 lines

Test #21:

score: 0
Accepted
time: 311ms
memory: 168884kb

input:

1336 1306
####...##.#.#.......#.#..###...#...#....#..##.##...##.##.....##.#....##.#..#..#....#...#.#..#.............#.#.##....#.#.###.##............###..........#.....####...#..#.#.#....#.###..#.........##.#.#....#.#..###.##.##.##.#.......##..#.#...#..##........#.##.....###...##..#.###.##....###..#....

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1336 lines

Test #22:

score: 0
Accepted
time: 174ms
memory: 154848kb

input:

1784 874
.......................#..........................#..........................#................................................................................................................#.........................#.#..........................#................................................

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1784 lines

Test #23:

score: 0
Accepted
time: 46ms
memory: 94260kb

input:

1348 165
##...#......#..##.#.###..##..#...##...#.#........#..........#.....#...#.#..#..#.....#....#...#...#.#.#.......#...#...#......#....#.......................#.##....####
.##...#................##...#..#........###.#.#.....#....#.#.....#........#.#.####...........#.##...#.##.#.....#........##......

output:

.....................................................................................................................................................................
.........................................................................................................................................

result:

ok 1348 lines

Test #24:

score: 0
Accepted
time: 106ms
memory: 120920kb

input:

1658 483
.#....#.###.......#.##.....##..##.#..##..##...##....#.##.###.###.#.##.####.#..####..#.#.###..##...##...#.##.##.##.##.#.##..#.##.#.....####.#..##..###..####.....#..#.#.#.####.#.##.#.##...#.###..#######..###.#####.##.#..##.#..#...###.###.##.##.#.###..###..##.#..##.#..##.#.#.....###..........#...

output:

...............................................................................................................................................................................................................................................................................................................

result:

ok 1658 lines

Test #25:

score: -100
Runtime Error

input:

1999 31
##########.#########.###.#..#..
.#....#####..##..#.####.##.##.#
############.#######..####.####
#.###.######.####.#############
###.############.#.########..##
.###.#####.###.##.###..#.######
#######.#.##.#########.########
########.#..######.##.###..####
..#.##..#.######.####.####..##.
####...

output:


result: