1 solutions

  • 0
    @ 2024-12-11 0:25:36

    C++ :

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <string.h>
    #include <algorithm>
    
    #include <cmath>
    #include <queue>
    #include <deque>
    #include <stack>
    #include <vector>
    #include <set>
    using namespace std;
    
    int b,n,m,ii,jj,aa,bb,s[300][100000],a[100000]={-1000};
    
    void maxx(int i)
    {
    	for(int h=1;h<=m;++h)
    		a[i]=a[i]>s[h][i]+100?a[i]:s[h][i]+100;
    	a[i]-=100;
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
        scanf("%d%d",&m,&n);
        for(int i=1;i<=m;++i)
    		for(int j=1;j<=n;++j)
            {
    			scanf("%d",&b);
    			s[i][j]=b;
            }
    	for(int i=1;i<=n;++i)
    		maxx(i);
    	for(int i=2;i<=n;++i)
    		a[i]+=a[i-1];
    	for(int i=1;i<=n;++i)
    		a[0]=a[0]>a[i]?a[0]:a[i];
    	for(int i=1;i<=n;++i)
    		for(int j=i+1;j<=n;++j)
    			a[0]=a[j]-a[i]>a[0]?a[j]-a[i]:a[0];
    	printf("%d\n",a[0]);
        return 0;
    }
    

    Pascal :

    var
       m,n,i,x,j,ans,s,maxs:longint;
       max:array[0..100000]of longint;
    begin
     readln(m,n);
     for i:=1 to n do max[i]:=-maxlongint;
     for i:=1 to m do
      for j:=1 to n do
       begin
        read(x);
        if x>max[j] then max[j]:=x;
       end;
     maxs:=-maxlongint;
     for i:=1 to n do
      begin
       if s+max[i]>max[i] then s:=s+max[i]
       else s:=max[i];
       if s>maxs then maxs:=s;
      end;
     writeln(maxs);
    end.
    
    • 1

    Information

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