Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

range error?

Posted by yreto at 2005-07-29 17:36:57
In Reply To:帮我看看为什么老是RTE吧!(算法应该没有错,就是效率应该不是很高)谢谢啦! Posted by:tiffany_bear at 2005-07-27 13:56:24
> import java.io.*;
> import java.util.*;
> import java.lang.Math;
> 
> public class Main {
> 
>     public static void main(String[] args) throws Exception{
>         
>         int[][] arrayInput= new int[100][];
>         int max = -127;
> 
>         // Input
>         BufferedReader stdinN = 
>             new BufferedReader(
>                 new InputStreamReader(System.in));
>         String lineN = stdinN.readLine();
>         StringTokenizer stN = new StringTokenizer(lineN);
>         int n = Integer.parseInt(stN.nextToken());
>         if (n>100 || n==0) {
>      	   System.out.println("ERROR! 0<n<=100");
>                 return;
>              }
>         
>         BufferedReader stdinArr = 
>             new BufferedReader(
>                 new InputStreamReader(System.in));
>         String lineArr = stdinArr.readLine();
>         StringTokenizer stArr = new StringTokenizer(lineArr);
>         for (int i=0; i<n; i++) {
>             arrayInput[i] = new int[n];
>             for(int j=0; j<n; j++) {
>                 arrayInput[i][j] = Integer.parseInt(stArr.nextToken());
>                 if (arrayInput[i][j] <-127 || arrayInput[i][j] >127) {
>                     System.out.println("ERROR! -127<Number<127");
>                     return;
>                 }
>             }
>         }
> 
>         ArrayFun arr = new ArrayFun(arrayInput, n);
>         for(int i=0; i<n; i++) {
>            max = Math.max(arr.FindMax(i), max);
>         }
>         
>         System.out.println(max);
>     }
> }
> 
> class ArrayFun {
> 
>     private int[][] rectangle;
>     private int iN;
>     private int[] colSum = new int[100];
> 
>     public ArrayFun(int[][] Rectangle, int in) {
>         this.rectangle = Rectangle;
>         iN = in;
>     }
>     
>     public int FindMax(int row) {
>         
>         int iMax = -127;
>         int j=0;
>         int iSum = 0;
>         
>         // initialize the array colSum
>         for(j=0; j<iN; j++) {
>             colSum[j] = 0;
>         }
>         
>         for(int i=row; i<iN; i++) {
>             for(j=0; j<iN; j++) {
>             
>                 colSum[j] += rectangle[i][j];
>                 iMax = Math.max(colSum[j], iMax);
>                 iSum = colSum[j];
>                 
>                 int k = j-1;
>                 if (j>0) {
>                     while (k>=0) {
>                         iSum += colSum[k];
>                         iMax = Math.max(iSum, iMax);
>                         k--;
>                     } 
>                 }      
>             }
>         }//for
>         return iMax;
>     }
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator