QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#307037#5537. Storing EggsNYCU_CartesianTreeWA 105ms39824kbC++203.8kb2024-01-17 20:26:062024-01-17 20:26:06

Judging History

This is the latest submission verdict.

  • [2024-01-17 20:26:06]
  • Judged
  • Verdict: WA
  • Time: 105ms
  • Memory: 39824kb
  • [2024-01-17 20:26:06]
  • Submitted

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'