252012026-02-18 12:39:05linhnkSzorzatország csapata (40 pont)cpp17Futási hiba 6/4020ms888 KiB
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
using ll=long long;
int main() {
	ll n, d=1, k=-1; cin>>n; vector<int> comp(n);
	priority_queue<pair<ll, pair<int, int>>> que;
	for(int i=0; i<n; i++){
		cin>>comp[i];
		if(comp[i]==0) k=i;
	}
	que.push({0, {k, k}});
	if(n==1){
		cout<<1<<" "<<1; return 0;
	}
	int beg=-1, end;
	for(int i=0; i<=n; i++){
		if((i!=n&&comp[i]==0)||i==n){
			end=i;
			if(end-beg<2){				
				continue;
			}
			if(end-beg==2){
				que.push({d, {beg+1, end-1}}); beg=end; d=1; continue;
			}
			if(d<0){
				int a=beg+1, b=end-1, da=d, db=d;
				while(da<0&&a<end){
					da/=comp[a];
					a++;
				}
				while(db<0&&b>beg){
					db/=comp[b];
					b--;
				}
				if(da<db&&b!=beg) que.push({db, {beg+1, b}});
				else if(a!=end) que.push({da, {a, end-1}});
			}
			else{
				que.push({d, {beg+1, end-1}});
			}
			beg=end;
			d=1;
		}
		else{
			d*=comp[i];
		}
	}
	cout<<que.top().second.first+1<<" "<<que.top().second.second+1;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/40
1Elfogadva0/01ms316 KiB
2Futási hiba0/017ms804 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Futási hiba0/11ms400 KiB
8Elfogadva2/21ms316 KiB
9Futási hiba0/21ms316 KiB
10Futási hiba0/320ms796 KiB
11Futási hiba0/318ms888 KiB
12Hibás válasz0/317ms824 KiB
13Futási hiba0/420ms812 KiB
14Hibás válasz0/417ms564 KiB
15Hibás válasz0/417ms564 KiB
16Futási hiba0/520ms808 KiB
17Futási hiba0/517ms816 KiB