原题在这 http://acm.hdu.edu.cn/showproblem.php?pid=1003
小弟不才,一直提交都是 WA,求解import java.util.Scanner;/**
* @author Jian
* @date 2012-8-7
* @version
*
*/
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
if (sc.hasNextInt())
{
int cases = sc.nextInt();
for (int c = 0; c < cases; c++)
{
if (sc.hasNextInt())
{
int counts = sc.nextInt();
int sum = 0;
int[] arrays = new int[counts];
for (int i = 0; i < counts; i++)
{
arrays[i] = sc.nextInt();
sum += arrays[i];
}
int start = 0;
int end = counts - 1;
int max = Integer.MIN_VALUE;
int[] output = new int[3];
int decrease = 0; for (int j = 0; j < counts; j++)
{
sum -= decrease;
if (sum > max)
{
max = sum;
output[0] = start;
output[1] = end;
output[2] = max;
}
if (start == end)
break;
if (arrays[start] >= arrays[end])
{
decrease = arrays[end];
end = end - 1;
}
else
{
decrease = arrays[start];
start = start + 1;
}
} if (c > 0)
System.out.println();
System.out.println("Case " + (c + 1) + ":");
System.out.println(output[2] + " " + (output[0] + 1) + " "
+ (output[1] + 1)); }
} }
}
}
小弟不才,一直提交都是 WA,求解import java.util.Scanner;/**
* @author Jian
* @date 2012-8-7
* @version
*
*/
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
if (sc.hasNextInt())
{
int cases = sc.nextInt();
for (int c = 0; c < cases; c++)
{
if (sc.hasNextInt())
{
int counts = sc.nextInt();
int sum = 0;
int[] arrays = new int[counts];
for (int i = 0; i < counts; i++)
{
arrays[i] = sc.nextInt();
sum += arrays[i];
}
int start = 0;
int end = counts - 1;
int max = Integer.MIN_VALUE;
int[] output = new int[3];
int decrease = 0; for (int j = 0; j < counts; j++)
{
sum -= decrease;
if (sum > max)
{
max = sum;
output[0] = start;
output[1] = end;
output[2] = max;
}
if (start == end)
break;
if (arrays[start] >= arrays[end])
{
decrease = arrays[end];
end = end - 1;
}
else
{
decrease = arrays[start];
start = start + 1;
}
} if (c > 0)
System.out.println();
System.out.println("Case " + (c + 1) + ":");
System.out.println(output[2] + " " + (output[0] + 1) + " "
+ (output[1] + 1)); }
} }
}
}
/**
*It is a demo for practicing JAVA. All codes are opened source by Jian.
*/
package p1003;import java.util.Scanner;/**
* @author Jian
* @date 2012-8-7
* @version
*
*/
public class P1003_3
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int[][] output;
if (sc.hasNextInt())
{
int cases = sc.nextInt();
output = new int[cases][3];
for (int c = 0; c < cases; c++)
{
if (sc.hasNextInt())
{
int counts = sc.nextInt();
int sum = 0;
int[] arrays = new int[counts];
for (int i = 0; i < counts; i++)
{
arrays[i] = sc.nextInt();
sum += arrays[i];
}
int start = 0;
int end = counts - 1;
int max = Integer.MIN_VALUE;
output[c] = new int[3];
int decrease = 0; for (int j = 0; j < counts; j++)
{
sum -= decrease;
if (sum > max)
{
max = sum;
output[c][0] = start;
output[c][1] = end;
output[c][2] = max;
}
if (start == end)
break;
if (arrays[start] >= arrays[end])
{
decrease = arrays[end];
end = end - 1;
}
else
{
decrease = arrays[start];
start = start + 1;
}
}
}
}
for (int m = 0; m < cases; m++)
{
System.out.println("Case " + (m + 1) + ":");
System.out.println(output[m][2] + " " + (output[m][0] + 1)
+ " " + (output[m][1] + 1)); if (m < cases - 1)
System.out.println();
} }
}
}