QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#446317 | #4788. Gravity | Kevin5307 | RE | 468ms | 212896kb | C++23 | 2.4kb | 2024-06-17 07:48:09 | 2024-06-17 07:48:10 |
Judging History
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 ##########.#########.###.#..#.. .#....#####..##..#.####.##.##.# ############.#######..####.#### #.###.######.####.############# ###.############.#.########..## .###.#####.###.##.###..#.###### #######.#.##.#########.######## ########.#..######.##.###..#### ..#.##..#.######.####.####..##. ####...