Untitled
unknown
plain_text
3 years ago
831 B
5
Indexable
#include <fstream> using namespace std; ifstream cin("secvmaxval.in"); ofstream cout("secvmaxval.out"); long long a, n, val, suma[200005]; int bs(int st, int dr, long long x){ int mij=st+(dr-st)/2; //cout<<st<<" "<<dr<<endl; if(st>dr){ return -1; } if(suma[st]>x){ return -1; } if(suma[mij]==x && suma[mij+1]!=x){ return mij; } if(suma[mij]<=x){ return bs(st, mij-1, x); } if(suma[mij]>x){ return bs(mij+1, dr, x); } } int main() { int maxnr=0; cin>>n>>val; for(int i=1; i<=n; i++){ cin>>a; suma[i]=suma[i-1]+a; } for(int i=1; i<=n; i++){ int j=bs(i, n, val+suma[i-1]); if(maxnr<j-i+1){ maxnr=j-i+1; } } cout<<maxnr; return 0; }
Editor is loading...