Cod sursa(job #2735837)

Utilizator gifiVidru Rares gifi Data 2 aprilie 2021 21:17:52
Problema Teren Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
using namespace std;
ifstream cin("teren.in");
ofstream cout("teren.out");
int v[301][301];
int main()
{int n,m,x,mar=0;
cin>>n>>m>>x;
for (int i=1;i<=n;i++) for (int j=1;j<=m;j++)
    {cin>>v[i][j];
    v[i][j]+=v[i-1][j];
    }
for (int p1=1;p1<=n;p1++) for (int p2=p1;p2<=n;p2++)
    {int ar=0,s=0,f[1001];
    for (int i=1;i<=m;i++) f[i]=v[p2][i]-v[p1-1][i];
    f[0]=0;
    for (int i=0;i<=m;i++)
        {if (i==m)
            {if (ar>mar) mar=ar;
            }
            else
            {if (ar>mar) mar=ar;
            if (f[i+1]<=x)
                {while (s+f[i+1]>x)
                    {s-=f[i-ar/(p2-p1+1)+1];
                    ar-=p2-p1+1;
                    }
                s+=f[i+1];
                ar+=p2-p1+1;
                }
                else
                {ar=0;
                s=0;
                }
            }
        }
    }
cout<<mar;
    return 0;
}