Rezultati

Up. imeNalogaJezikRezultatČas oddaje
vlakectomaz-2018 Arbitraža C++ 0/100Napaka med izvajanjem / ob izhodu (RTE) 13. okt '18 @ 15:10

Test Točke Porabljen spomin Porabljen čas Status
#1 0/11 3,211 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​1044
<<<EOF>>>
Pravilen izhod:
​1554
<<<EOF>>>
#2 0/11 3,945 MiB 0,173 s Napačen odgovor
Tvoj izhod:
​1437068460874203789
<<<EOF>>>
Pravilen izhod:
​3927348005979832029
<<<EOF>>>
#3 0/11 3,633 MiB 0,063 s Napačen odgovor
Tvoj izhod:
​2673069390000
<<<EOF>>>
Pravilen izhod:
​4819417741398
<<<EOF>>>
#4 0/11 3,594 MiB 0,086 s Napaka med izvajanjem / ob izhodu
#5 0/11 3,594 MiB 0,068 s Napačen odgovor
Tvoj izhod:
​500848080000
<<<EOF>>>
Pravilen izhod:
​1228925345175
<<<EOF>>>
#6 11/11 3,945 MiB 0,117 s OK
#7 0/11 4,094 MiB 0,111 s Napačen odgovor
Tvoj izhod:
​79946173175
<<<EOF>>>
Pravilen izhod:
​187299278250
<<<EOF>>>
#8 0/11 3,219 MiB 0,010 s Napačen odgovor
Tvoj izhod:
​18446744072170551526
<<<EOF>>>
Pravilen izhod:
​1565928990927848
<<<EOF>>>
#9 0/12 3,215 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​222428060804000
<<<EOF>>>
Pravilen izhod:
​3359183337051000
<<<EOF>>>

Ocenjevani program (arbitraza.cc):
#include <iostream>
#include <vector>
using namespace std;

#define ENDP {cout << M << endl; return 0;}

vector <int> s;
vector <int> p;

unsigned long long M,Mtemp;
int a,b,pN,sN;

int main(){
	int i,j,k,enakost;
	cin >> pN >> sN >> k;
	for(i=0;i<pN;i++){cin >> j; p.push_back(j);}
	for(i=0;i<sN;i++){cin >> j; s.push_back(j);}
	
	// PREGLED ZA MAX
	if(pN+sN<k)k=pN+sN;
	if(pN>k){a=k;b=0;}
	else {a=pN; b=k-a;}

	//GEN IZHODISCNO TABELO
	M=0; Mtemp=0;
	for(i=0;i<a&&i<b;i++) M+=p[i]*s[i];
	for(j=i;j<a;j++) {M+=p[j]; /* cout << "ADDING: " << p[j] << endl;*/}
	for(j=i;j<b;j++) M+=s[j];
	Mtemp=M;
	if(a>=b)M*=a;
	else M*=b;
	
	//PREMIKAJ INDEKSE a--, b++, dokler a+b!=k
	while(1){
		enakost=b>=a;
		a--; b++;
		
		if(b>=sN) ENDP
		if(k!=a+b) ENDP
		
		//DEBUG
		//cout << Mtemp << " " << a << " " << b << " "<<  sN <<endl;
		
		if(enakost){
			Mtemp=Mtemp-p[a]*s[a]+s[a]+s[b];
		}
		else {
			Mtemp=Mtemp-p[b]-p[a]+p[b]*s[b];
		}
		
		if(a>=b && M<Mtemp*a) M=Mtemp*a;
		else if(b<a && M<Mtemp*b) M=Mtemp*b;
	}
	
	return 0;
}