Mình không biết bạn học ngôn ngữ nào nên mình đã code cả 2 ngôn ngữ là pascal và C++.
C++
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int k,n,a[100],tong,j,i,c=123456789,d=0;
cout<<"n="; cin>>n;
cout<<"k="; cin>>k;
for (i=1; i<=n; i++) {
cout<<"a["<<i<<"]=";cin>>a[i];
}
for ( i=1; i<=n; i++) {
j=i;
tong=a[i];
while (j<n && tong<=k && tong+a[j+1]<=k) {
j++;
tong+=a[j];
}
if (tong==k && j-i+1<=c-d+1){
d=i; c=j;
}
}
cout<<d<<" "; if (d != 0) cout<<c-d+1; else cout<<0;
return 0;
}
Pascal
uses crt;
var f:text; i,n,j,d,c,tong,k:longint; a:array[1..1000000]of longint;
begin
clrscr;
assign(f,'input.pas');reset(f);
readln(f,n,k);
while not(eof(f)) do
begin
while not(eoln(f)) do begin inc(i); read(f,a[i]); end; readln(f);
end;
d:=0; c:=high(longint)-2;
close(f);
assign(f,'output.pas');rewrite(f);
for i:=1 to n do
begin
j:=i;
tong:=a[i];
while (j<>n)and(tong<=k)and(tong+a[j+1]<=k) do begin inc(j); inc(tong,a[j]); end;
if (tong=k)and(j-i+1<c-d+1) then begin d:=i; c:=j; end;
end;
if d=0 then write(f,'0 0')else write(f,d,' ',c-d+1);
close(f);
end.