QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#307037 | #5537. Storing Eggs | NYCU_CartesianTree | WA | 105ms | 39824kb | C++20 | 3.8kb | 2024-01-17 20:26:06 | 2024-01-17 20:26:06 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define F first
#define S second
#define pb push_back
const int mol=998244353;
char a[5][105];
int dp[105][105][105];
const double eps=1e-7;
int okbc[105][105][105],okac[105][105][105],okab[105][105][105];
void solve(){
int n,q;
cin>>n>>q;
int cc=0;
for(int i=1;i<=3;i++) for(int j=1;j<=n;j++) cin>>a[i][j];
for(int i=1;i<=3;i++) for(int j=1;j<=n;j++){
if(a[i][j]!='#') cc++;
}
if(cc<q){
cout<<"-1\n";
return;
}
int l=0,r=50000;
while(l<r){
int mid=l+r+1>>1;
for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) for(int k=0;k<=n;k++) dp[i][j][k]=0,okab[i][j][k]=0,okac[i][j][k]=0,okbc[i][j][k]=0;
for(int i=n;i>=0;i--){
for(int j=n;j>=0;j--){
for(int k=n;k>=0;k--){
bool ok=1;
if(a[1][i]=='#') ok=0;
if(a[2][j]=='#') ok=0;
if((j-i)*(j-i)+1<mid&&i&&j) ok=0;
if((k-i)*(k-i)+4<mid&&i&&k) ok=0;
if(j&&(k-j)*(k-j)+1<mid&&k) ok=0;
if(a[3][k]=='#') ok=0;
if(!ok){
okab[i][j][k]=okab[i][j][k+1];
okac[i][j][k]=okac[i][j+1][k];
okbc[i][j][k]=okbc[i+1][j][k];
}
else
okab[i][j][k]=k,okac[i][j][k]=j,okbc[i][j][k]=i;
}
}
}
int ans=0;
int t=sqrt(mid);
while(t*t>=mid) t--;
while(t*t<mid) t++;
for(int i=0;i<=n;i++){
if(a[1][i]=='#') continue;
for(int j=0;j<=n;j++){
if((j-i)*(j-i)+1<mid&&i&&j) continue;
if(a[2][j]=='#') continue;
for(int k=0;k<=n;k++){
if(k){
if((k-i)*(k-i)+4<mid&&i) continue;
if(j&&(k-j)*(k-j)+1<mid) continue;
}
if(a[3][k]=='#') continue;
int u=0;if(i) u++;if(j) u++;if(k) u++;
dp[i][j][k]=max({u,dp[i][j][k]});
if(i) dp[i][j][k]=max(dp[i][j][k],dp[i-1][j][k]);
if(j) dp[i][j][k]=max(dp[i][j][k],dp[i][j-1][k]);
if(k) dp[i][j][k]=max(dp[i][j][k],dp[i][j][k-1]);
if(i+t<=n&&okbc[i+t][j][k]&&okbc[i+t][j][k]>=max({i,j,k})) dp[okbc[i+t][j][k]][j][k]=max(dp[okbc[i+t][j][k]][j][k],dp[i][j][k]+1);
if(j+t<=n&&okac[i][j+t][k]&&okac[i][j+t][k]>=max({i,j,k})) dp[i][okac[i][j+t][k]][k]=max(dp[i][okac[i][j+t][k]][k],dp[i][j][k]+1);
if(k+t<=n&&okab[i][j][k+t]&&okab[i][j][k+t]>=max({i,j,k})) dp[i][j][okab[i][j][k+t]]=max(dp[i][j][okab[i][j][k+t]],dp[i][j][k]+1);
ans=max(ans,dp[i][j][k]);
// if(dp[i][j][k]==2&&mid==2500) cout<<i<<" "<<j<<" "<<k<<"\n";
// if(dp[i][j][k]==1&&k==0&&mid==2) cout<<i<<" "<<j<<" "<<k<<" "<<mid*mid<<" "<<dp[i][j][k+mid*mid]<<"\n";
}
}
}
// cout<<mid<<" "<<dp[2][1][2]<<" "<<okac[2][3][2]<<"\n";
// cout<<ans<<" "<<mid<<"pp\n";
// if(ans==5){
// cout<<okbc[1][0][3]<<"\n";
// cout<<dp[3][0][3]<<"\n";
// }
if(ans>=q) l=mid;
else r=mid-1;
}
// cout<<l<<"\n";
cout<<fixed<<setprecision(6)<<sqrt(l)<<"\n";
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);
// double t1=(double)clock()/CLOCKS_PER_SEC;
solve();
// double t2=(double)clock()/CLOCKS_PER_SEC;
// cout<<fixed<<setprecision(10)<<t2-t1<<"\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 12088kb
input:
5 2 #.... ..... ....#
output:
4.472136
result:
ok found '4.4721360', expected '4.4721360', error '0.0000000'
Test #2:
score: 0
Accepted
time: 1ms
memory: 12076kb
input:
5 6 ##.## ##### .....
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #3:
score: 0
Accepted
time: 1ms
memory: 12056kb
input:
3 4 ..# ... ...
output:
1.414214
result:
ok found '1.4142140', expected '1.4142140', error '0.0000000'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
2 6 .. .# ..
output:
-1
result:
ok found '-1.0000000', expected '-1.0000000', error '-0.0000000'
Test #5:
score: 0
Accepted
time: 1ms
memory: 11988kb
input:
1 2 . . .
output:
2.000000
result:
ok found '2.0000000', expected '2.0000000', error '0.0000000'
Test #6:
score: 0
Accepted
time: 52ms
memory: 39500kb
input:
100 2 .................................................................................................... .................................................................................................... ...............................................................................................
output:
99.020200
result:
ok found '99.0202000', expected '99.0202000', error '0.0000000'
Test #7:
score: 0
Accepted
time: 60ms
memory: 39704kb
input:
100 3 .................................................................................................... .................................................................................................... ...............................................................................................
output:
49.040799
result:
ok found '49.0407990', expected '49.0407990', error '0.0000000'
Test #8:
score: 0
Accepted
time: 102ms
memory: 39704kb
input:
100 100 .................................................................................................... .................................................................................................... .............................................................................................
output:
2.000000
result:
ok found '2.0000000', expected '2.0000000', error '0.0000000'
Test #9:
score: 0
Accepted
time: 105ms
memory: 39648kb
input:
100 150 .................................................................................................... .................................................................................................... .............................................................................................
output:
1.414214
result:
ok found '1.4142140', expected '1.4142140', error '0.0000000'
Test #10:
score: 0
Accepted
time: 104ms
memory: 39764kb
input:
100 151 .................................................................................................... .................................................................................................... .............................................................................................
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #11:
score: 0
Accepted
time: 97ms
memory: 39624kb
input:
100 200 .................................................................................................... .................................................................................................... .............................................................................................
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #12:
score: 0
Accepted
time: 101ms
memory: 39680kb
input:
100 201 .................................................................................................... .................................................................................................... .............................................................................................
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #13:
score: 0
Accepted
time: 24ms
memory: 30500kb
input:
60 130 ............................................................ ............................................................ ............................................................
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #14:
score: 0
Accepted
time: 54ms
memory: 39816kb
input:
100 100 .................................................................................................... #################################################################################################### .............................................................................................
output:
2.000000
result:
ok found '2.0000000', expected '2.0000000', error '0.0000000'
Test #15:
score: 0
Accepted
time: 52ms
memory: 39648kb
input:
100 51 #################################################################################################### .................................................................................................... ###########################################################################################...
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
1 2 # # #
output:
-1
result:
ok found '-1.0000000', expected '-1.0000000', error '-0.0000000'
Test #17:
score: 0
Accepted
time: 48ms
memory: 39612kb
input:
99 50 ################################################################################################### ................................................................................................... ##############################################################################################...
output:
2.000000
result:
ok found '2.0000000', expected '2.0000000', error '0.0000000'
Test #18:
score: 0
Accepted
time: 59ms
memory: 39676kb
input:
100 47 #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#. .#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.# #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...
output:
2.828427
result:
ok found '2.8284270', expected '2.8284270', error '0.0000000'
Test #19:
score: 0
Accepted
time: 60ms
memory: 39636kb
input:
100 43 .#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.# #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#. .#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#....
output:
2.828427
result:
ok found '2.8284270', expected '2.8284270', error '0.0000000'
Test #20:
score: 0
Accepted
time: 52ms
memory: 39540kb
input:
99 2 #........#............#.#.#...................................#................##..............#... ............................##...#......#...##.............#.........#..#...#............#...#..... #...............................................#..............#.....#.........#.........#........
output:
98.005102
result:
ok found '98.0051020', expected '98.0051020', error '0.0000000'
Test #21:
score: 0
Accepted
time: 41ms
memory: 39292kb
input:
90 2 #############..######.###.##.#########.###.###########.####.############################## #...##########.#.#################.############.########################.################# ###################.###.##.####.#######..##.########.#############################.#######
output:
81.006173
result:
ok found '81.0061730', expected '81.0061730', error '0.0000000'
Test #22:
score: 0
Accepted
time: 47ms
memory: 39092kb
input:
95 3 #.#..............#.............#.......#..##.....#.#............#....#..................##..... .....#.#........#...#...........#......................#...#.....#.........#.....#...........#. #.......#.#....#.......#.......#.......#..#.#.#.#....#.#...#..#......#........#..........#....#
output:
47.010637
result:
ok found '47.0106370', expected '47.0106370', error '0.0000000'
Test #23:
score: 0
Accepted
time: 39ms
memory: 38976kb
input:
92 3 #########################.###########################.####################################.# #######.##############.#.#################.#########.########.#############################. ###.##.####.###.####.#####.########.#########.########.##.#######.##########################
output:
42.000000
result:
ok found '42.0000000', expected '42.0000000', error '0.0000000'
Test #24:
score: 0
Accepted
time: 51ms
memory: 38920kb
input:
93 4 ##..#.......................#.....#.#.#..............#.....#........#.....................#.. ......#...................#..##...................#...............###.....#....#..........#.# #......#.........#....#.................#......#...#......##..........#.........#.#..#.#..#.#
output:
30.066593
result:
ok found '30.0665930', expected '30.0665930', error '0.0000000'
Test #25:
score: 0
Accepted
time: 45ms
memory: 39460kb
input:
92 4 ###.###############.######.##.#########################.######.###.#####.################### #.##..#####################.###########################.########..###############.#######... #######################.###.############.##..####.#################.#.#..####.##############
output:
28.017851
result:
ok found '28.0178510', expected '28.0178510', error '0.0000000'
Test #26:
score: 0
Accepted
time: 58ms
memory: 39824kb
input:
94 5 #........#....#.................................................#.....................#....... #................#...............#..##..................#........#.......#...#................ ##..................................................##................#.......#...............
output:
23.021729
result:
ok found '23.0217290', expected '23.0217290', error '0.0000000'
Test #27:
score: 0
Accepted
time: 1ms
memory: 9968kb
input:
1 2 # . .
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #28:
score: 0
Accepted
time: 44ms
memory: 39620kb
input:
94 5 ##..#.######.##.########.#####.#####.############..##.##############################..######## #######.########.##########.#..################.####.#.###...######..##.###################### ######.############.######.#####################.################.##.##############.##########
output:
18.027756
result:
ok found '18.0277560', expected '18.0277560', error '0.0000000'
Test #29:
score: 0
Accepted
time: 61ms
memory: 38576kb
input:
90 6 #.................#....................#................#.#.........###................... ....................................#........#...................#...##...##....#.....#... #.#...........#...#........#..#....#.#....................#.........#.....................
output:
17.117243
result:
ok found '17.1172430', expected '17.1172430', error '0.0000000'
Test #30:
score: 0
Accepted
time: 50ms
memory: 39684kb
input:
100 6 ##########.##.##################.###########.###########.##.######################.####.##.######### ##########...#########.#.########.#################.#.###########.#.##########.#.##.################ ##############.#####..#######..##################.#######################.########.#########...
output:
16.031220
result:
ok found '16.0312200', expected '16.0312200', error '0.0000000'
Test #31:
score: 0
Accepted
time: 56ms
memory: 39112kb
input:
92 7 #.#....#..#...#.......#.........................................#.......#...#.............#. ...............#......#............#...#.........................#.....#..............#..... #..#......#...............#.................#....#............................#.............
output:
15.132746
result:
ok found '15.1327460', expected '15.1327460', error '0.0000000'
Test #32:
score: 0
Accepted
time: 44ms
memory: 38992kb
input:
92 7 ##.###########..######.###############.#.##.#################.##.#############.######.###.## #############.###############.##..#####################.######.#..#########.###.############ .###.########.###################.########.###################..#######...#########.#####.##
output:
14.035669
result:
ok found '14.0356690', expected '14.0356690', error '0.0000000'
Test #33:
score: 0
Accepted
time: 56ms
memory: 38876kb
input:
91 8 #..................#..#..............#......................#.......#..........#...#..#.... #....#.#.....#..#......#.....#.................#..#...........................#.........#.. #.......#......#..........#............#.....#...................#..............#.....#....
output:
12.165525
result:
ok found '12.1655250', expected '12.1655250', error '0.0000000'
Test #34:
score: 0
Accepted
time: 39ms
memory: 39000kb
input:
93 8 ############.###########.#######################.############.##.###.######################.# ############.####.###########.#######.####.##########.#######.####.###################.####.. #####.#######.###########.#####.#############.#.##################.##########################
output:
8.062258
result:
ok found '8.0622580', expected '8.0622580', error '0.0000000'
Test #35:
score: 0
Accepted
time: 101ms
memory: 39720kb
input:
100 109 ..#.....#..............#....................#..#.......#.............#................#.#........... #............##.........#..........#.#....#...............#...#.......#................#...........# .....#..#......#................................................................#............
output:
1.414214
result:
ok found '1.4142140', expected '1.4142140', error '0.0000000'
Test #36:
score: 0
Accepted
time: 74ms
memory: 39756kb
input:
97 13 ..##...#..........#.........##....##......#............#..........###........#.....#.........#... ##..#....#.............#....#...#.##............#........#.#.#.....................#.......#..#.. ........#..#....##.........#.#....#.....#.......#.#...................#......#.......#......##...
output:
8.062258
result:
ok found '8.0622580', expected '8.0622580', error '0.0000000'
Test #37:
score: 0
Accepted
time: 92ms
memory: 39768kb
input:
100 50 ....#......#..................#.......#..#.....#........#.........#......#....#............##....... #.....##........#.#...........##..#....##....#.#.........##....#.##...........#..................... ......##........#...#....#...#...#............#.......##.#..........##......##....##..#...#...
output:
2.236068
result:
ok found '2.2360680', expected '2.2360680', error '0.0000000'
Test #38:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
1 3 # . .
output:
-1
result:
ok found '-1.0000000', expected '-1.0000000', error '-0.0000000'
Test #39:
score: 0
Accepted
time: 68ms
memory: 39256kb
input:
92 107 ..#........#...#...#.....#....#........#...#.......#.........#..#.........#...##.......##.#. ..##.......#..#....##.#..##.#.##........#............#..#.......#..##..............#....#... #...#.....#..........#........#.....##.#.................#....##...........#............#...
output:
1.414214
result:
ok found '1.4142140', expected '1.4142140', error '0.0000000'
Test #40:
score: 0
Accepted
time: 71ms
memory: 39192kb
input:
95 125 ...##.......#..#.#.............#..##...#..................#......#...##..#.....##....#.......#. .........#.....#.#....#....#..##.....#...#...#......#...........##..#........#.#...#.#........# .#..#....................##.........#...#...........#...........#...#...#..........##.....#.##.
output:
1.000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #41:
score: 0
Accepted
time: 46ms
memory: 39012kb
input:
93 20 ############################################################################################# .#.....#.......###.#..#.###....#...............##...#.....#..#...#...........#.....#....#..#. ....##.....#....#.#......#......#...........#.....#................#......#...#.##........#..
output:
4.123106
result:
ok found '4.1231060', expected '4.1231060', error '0.0000000'
Test #42:
score: 0
Accepted
time: 51ms
memory: 39356kb
input:
97 21 ################################################################################################# ################################################################################################# ......###........#.....#...#.#.........##.#......#.####.##......#....#........#...##....#......#.
output:
4.000000
result:
ok found '4.0000000', expected '4.0000000', error '0.0000000'
Test #43:
score: 0
Accepted
time: 49ms
memory: 39184kb
input:
93 7 #...#..##..#..#....#...#......#...####.###..##.##.#..#.#.###.##......#..###....#.#..#.#.#...# .#.#....##..##.##.#...##..##.#..............####.....##.#.#.#.#.#..##....#...#.#.#.......#... ###.###......#.#.#.#...###....#.#.##..#..#...#...#.##.#..##...#.####.#..##.#.###....#.#...#.#
output:
15.132746
result:
ok found '15.1327460', expected '15.1327460', error '0.0000000'
Test #44:
score: 0
Accepted
time: 49ms
memory: 38712kb
input:
91 15 .##.#..#......#.#####..###....##..#.#...#..##..#.##.....#....#.######.#.#.#......##..##..#. ..#..########....#..#...#.###.#............#.#.#..#..#..#.#.##...##....###.#...#.###..####. ...#.##..####..#.#.#.....#.#..#.#...##.##.#....#....#..#..##.......#####..###.#.#.#.##...#.
output:
6.324555
result:
ok found '6.3245550', expected '6.3245550', error '0.0000000'
Test #45:
score: -100
Wrong Answer
time: 61ms
memory: 39680kb
input:
98 58 .#..##.....#............###.#####.##.....#.#..#.#.....####..##.##.#.......##...##..#..#....#..#..# #.#.##.#.#...#.....###...#....##..#..#...#####.##.#.#..#.#.##.#...####.##.#.....###.##.###.#....#. ....#..##..##.##..##...#..#....#.......###...#....#.##..#...#..#.....#....#.#.......####.#.#..#.#.
output:
2.000000
result:
wrong answer 1st numbers differ - expected: '2.2360680', found: '2.0000000', error = '0.1055728'