(Jizhong) 2182 염소 (먹을) 방목 [프리픽스]

(파일 IO) : 입력 : eat.in 출력 : eat.out
시간 제한 : 1000 MS 공간 제약 : 13만1천72킬로바이트의 특정 제한
고토 ProblemSet


제목 설명
클래스 후 양 후에는 목초지에 방목해야합니다. 마을 양 이제 기능을 갖춘 시범 마을 양 검사 인, 지도자는 양 목장 마을을보고 싶었다.
마을 양 목장은 지속적으로 양을 방목의 양을 변화 한 각 목장에 배포됩니다. 지도자는 몇 연속 목초지를보고 싶어하지만, 더 이상보고 싶지 않아 양. 마을 지도자들은 더 스타일 마을 양을보고 대부분 가능한 한 여러 목초지를 방문하는 것이 좋습니다.
지금, 당신은 무엇을 일부 목초지, 마을 지도자를 방문하고의 요구 사항을 충족하기 위해 지도자들과 시장을 돕기로 결정합니다.


입력
정수 첫 번째 줄을 , 많은 연속 목초지 양 마을의 주뿐만 아니라 지도자들이 양의 최대 수를 확인하는 방법을 나타냅니다.
두번째 라인 정수, 두개의 정수가 하나의 공간으로 구분 내가-번째 발현 인공 지능을 i 번째 목장 나는 방목하는 양. 에서 번호 1 1 .

출력
출력 라인, 두 수의 총 숫자는 공간에 의해 분리 된 구경 번호의 시작과 끝을 나타낸다. 항상 많은 수의 소규모의 숫자에서 방향을. 또한, 동일한 길이의 가능성은, 출력의 작은 수의 해답 시작점 경우. 데이터는 적어도 답이 있는지 확인하십시오.


샘플 입력
. 5 (10)
. 제 3 1 2 7

샘플 출력
(24)


데이터 범위 제한
(30) (30) 데이터 % 1 < = < = (100) 1 <= N <= 100 ;
(60) (60) 데이터 % 1 < = < = 1,000 1 <= N은 <= 1,000 ;
(100) (100) 데이터 % 1 < = < = 100000 , 0 < = 나는 < = 1 0 9 , 0 < = < = 1 - 1 1 <= N은 <= 100000, 0 <=는 <= 10 ^ 9.0 <= T <= 2 ^ 31-1 인공 지능 .



더 이상 연속의 합보다 만족시키기 위해 (10) (10) , 거기 3 + 2 + 1 3 + 2 + 1 2 + 1 + 7 2 + 1 + 7 두 가지 가능성있는 우선 출력 2 4 4 게르마늄 목장.


문제 해결 아이디어는
약간의 최적화와 결합 된 접두어하고 폭력을 수행. .


코드

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
long long n,t,a[100010],maxn,p,q,i;
int main(){
   freopen("eat.in","r",stdin);
   freopen("eat.out","w",stdout);
    scanf("%d%lld",&n,&t);
    for(int i=1;i<=n;i++)
    {
        scanf("%lld",&a[i]);
        a[i]+=a[i-1];
    }
    i=0,maxn=0;
    while(i<n-maxn)
    {
        i++;
        for(int j=i+maxn;j<=n;j++)
        {
            if(a[j]-a[i-1]<=t)
            {
                maxn=max(maxn,j-i+1);
                p=i;
                q=j;
            }
            else
            break;
        }
    }
    printf("%d %d",p,q);
}
게시 된 119 개 원래 기사 · 원 찬양 8 · 전망 4900

추천

출처blog.csdn.net/kejin2019/article/details/105162552