1 solutions

  • 0
    @ 2024-12-11 0:49:30

    C++ :

    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int N(2003);
    int f[N]={0},lb[N]={0},rb[N]={0};
    int main()
    {
        int n,ans(0);
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            int x;
            for(int j=1;j<=n;j++)
            {
                cin>>x;
                if(x) f[j]=0;
                else f[j]++;
            }
            for(int j=1;j<=n;j++)
                for(lb[j]=j;lb[j]>1&&f[j]<=f[lb[j]-1];)
                    lb[j]=lb[lb[j]-1];
            for(int j=n;j>=1;j--)
                for(rb[j]=j;rb[j]<n&&f[j]<=f[rb[j]+1];)
                    rb[j]=rb[rb[j]+1];
            for(int j=1;j<=n;j++)
                ans=max(ans,f[j]*(rb[j]-lb[j]+1));
        }
        cout<<ans<<endl;
        return 0;
    }
    
    • 1

    Information

    ID
    740
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By