hdu 1003 (상세 설명) 자바
8153 단어 자바
일렬 수 a[0],a[1],……a[i]……
정의 배열 b [0], b [1,]... b [i]...
* * * b [i] i 이전의 임 의 위치 에서 i 의 최대 연속 과!!!
b[i]=max{b[i-1]+a[i],a[i]}
package Main;
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
int _case,n,i;
int []a=new int [100100];
int []b=new int [100100];//dp
int []c=new int [100100];//
Scanner cin=new Scanner(System.in);
_case=cin.nextInt();
int js=0;
while(_case-->0)
{
js++;
n=cin.nextInt();
for(i=0;i<n;i++)
{
a[i]=cin.nextInt();
}
b[0]=a[0];
c[0]=0;
for(i=1;i<n;i++)
{
if(b[i-1]+a[i]<a[i])
{
b[i]=a[i];
c[i]=i;
}
else
{
b[i]=b[i-1]+a[i];
c[i]=c[i-1];
}
}
int ed=0;
int max=b[0];
for(i=1;i<n;i++)
{
if(max<b[i])
{
max=b[i];
ed=i;
}
}
System.out.println("Case "+js+":");
System.out.println(max+" "+(c[ed]+1)+" "+(ed+1));
if(_case>0)System.out.println();
}
}
}
출력 형식 주의, Output a blank line between two cases.
#include<stdio.h>
int a[100100];
int b[100100];
int c[100100];
int main()
{
int _case,n,i;
scanf("%d",&_case);
int js=0;
while(_case--)
{
js++;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
b[0]=a[0];
c[0]=0;
for(i=1;i<n;i++)
{
if(b[i-1]+a[i]<a[i])
{
c[i]=i;
b[i]=a[i];
}
else
{
c[i]=c[i-1];
b[i]=b[i-1]+a[i];
}
}
int ed=0,max=b[0];
for(i=1;i<n;i++)
{
if(max<b[i])
{
max=b[i];
ed=i;
}
}
printf("Case %d:
",js);
printf("%d %d %d
",max,c[ed]+1,ed+1);
if(_case>0)printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.