108-Maximum Sum WA

All about problems in Volume I. If there is a thread about your problem, please use it. If not, create one with its number in the subject.

Moderator: Board moderators

108-Maximum Sum WA

Postby aaa111 » Sun Jun 17, 2012 12:59 am

Hi,
This is my code. I tried the test cases from the algorithmist site which seems to give me correct answer.But i am getting WA after submission:
Code: Select all
#include<iostream>

using namespace std;

void Get_Max_Sum(int **array_2d,int row_sum[],int row2_sum[],int col_sum[],int col2_sum[],int size);

int main(void)
{
   int **array_2d, i , j , size;
   int max_sum(0);
   int *row_sum,*col_sum,*row2_sum,*col2_sum;
   
   while(cin >> size)
   {
      array_2d  = new int*[size];
      row_sum  = new int[size];
      col_sum  = new int[size];
      row2_sum  = new int[size];
      col2_sum  = new int[size];

      for(i = 0 ; i < size; ++i)   
      {
         *(array_2d  + i)  = new int[size];   
         row_sum[i] = 0;

         for(j = 0 ; j < size ; ++j)
         {   
            cin >> *(*(array_2d + i) + j);
            row_sum[i] += *(*(array_2d + i) + j);         
         }
         row2_sum[i] = row_sum[i];
      }

      for(int i = 0 ; i < size ; ++i)
      {
         col_sum[i] = 0;

         for(int j = 0 ; j < size ; ++j)
         {
            col_sum[i]  += *(*(array_2d + j) + i);      
         }
         col2_sum[i] = col_sum[i];      
      }   

      Get_Max_Sum(array_2d , row_sum ,row2_sum , col_sum , col2_sum, size);

      delete(*array_2d);
      delete(row_sum);
      delete(col_sum);
      delete(row2_sum);
      delete(col2_sum);
   }

   return 0;
}

void Get_Max_Sum(int **array_2d,int row_sum[],int row2_sum[],int col_sum[],int col2_sum[],int size)
{
   int row(0),col1(0),col2(0);
   int real_sum(array_2d[0][0]);
   int sum(0);

   col2  = col1 + 1;

   while(row < size && col1 < size - 1)
   {
      if(col2 == 1)
         sum = array_2d[row][col1] + array_2d[row][col2] ;
      else
         sum += array_2d[row][col2];
      
      if(real_sum < sum)
         real_sum = sum;   

      if(col2 < size - 1)
      {
         ++col2;
      }
      else
      {
         for(int i = row + 1 ; i < size ; ++i)
         {
            sum += row_sum[i];
            
            if(real_sum < sum)
               real_sum = sum;            
         }

         ++col1;
         col2 = col1 + 1;
         
         for(int i = 0 ; i < size ; ++i)
            row_sum[i] = row2_sum[i] - array_2d[i][col1 - 1];            
               
         sum = 0;
      }

      if(col1 >= size - 1)
      {
         ++row;
         
         col1 = 0;
         col2 = col1 + 1;

         for(int i = 0 ; i < size ; ++i)
            row2_sum[i] = row_sum[i];
      }      
   }
   
   
   int col(0),row1(0),row2(0);
   sum = 0;

   row2  = row1 + 1;
   
   while(col < size && row1 < size - 1)
   {
      if(row2 == (row1 + 1) )
         sum = array_2d[row1][col] + array_2d[row2][col] ;
      else
         sum += array_2d[row2][col];
      
      if(real_sum < sum)
         real_sum = sum;   

      if(row2 < size - 1)
      {
         ++row2;
      }
      else
      {
         for(int i = col + 1 ; i < size ; ++i)
         {
            sum += col2_sum[i];
            
            if(real_sum < sum)
               real_sum = sum;            
         }

         ++row1;
         row2 = row1 + 1;

         for(int i = 0 ; i < size ; ++i)
            col2_sum[i] = col2_sum[i] - array_2d[row1 - 1][i];            
                  
         sum = 0;
      }

      if(row1 >= size - 1)
      {
         ++col;
         
         row1 = 0;
         row2 = row1 + 1;

         for(int i = 0 ; i < size ; ++i)
            col2_sum[i] = col_sum[i];         
      }      
   }

   cout << real_sum << endl;
}


Thanks in Advance.
aaa111
New poster
 
Posts: 14
Joined: Sat Nov 21, 2009 2:55 pm

Re: 108-Maximum Sum WA

Postby brianfry713 » Mon Jun 18, 2012 11:42 pm

Try the case Jan posted here:
viewtopic.php?t=7796
brianfry713
Guru
 
Posts: 1861
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA


Return to Volume I

Who is online

Users browsing this forum: No registered users and 1 guest