Submission #738678

# Submission time Handle Problem Language Result Execution time Memory
738678 2023-05-09T11:22:46 Z fractlpaca Horses (IOI15_horses) C++17
34 / 100
1500 ms 12344 KB
#include "horses.h"
#include <vector>
#include <algorithm>

#define v vector
#define ll long long

#define MOD 1000000007

using namespace std;

v<int> xs;
v<int> ys;
int n;


// Subtask 1

// int solve() {
// 	int ma = 0;
// 	int pop = 1;
// 	for(int i=0; i<n; i++) {
// 		pop*=xs[i];
// 		ma = max(ma, pop*ys[i]);
// 	}
// 	return ma%MOD;
// }

// int init(int N, int X[], int Y[]) {
// 	n = N;
// 	for (int i=0; i<n; i++) {
// 		xs.push_back(X[i]);
// 		ys.push_back(Y[i]);
// 	}
// 	return solve();
// }

// int updateX(int pos, int val) {
// 	xs[pos] = val;
// 	return solve();
// }

// int updateY(int pos, int val) {
// 	ys[pos] = val;
// 	return solve();
// }


// Subtask 2

int solve() {
	int max_i = n-1;
	ll pop = xs[n-1];
	for(int i=n-2; i>=0; i--) {
		if (ys[i] > ys[max_i]*pop) {
			max_i = i;
			pop=1;
		}
		pop = min(pop*xs[i], (ll)MOD);
	}

	pop=1;
	for(int i=0; i<=max_i; i++){
		pop = (pop*xs[i])%MOD;
	}
	return (int) ((pop*ys[max_i])%MOD);
}

int init(int N, int X[], int Y[]) {
	n = N;
	for (int i=0; i<n; i++) {
		xs.push_back(X[i]);
		ys.push_back(Y[i]);
	}
	return solve();
}

int updateX(int pos, int val) {
	xs[pos] = val;
	return solve();
}

int updateY(int pos, int val) {
	ys[pos] = val;
	return solve();
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 292 KB Output is correct
23 Correct 8 ms 300 KB Output is correct
24 Correct 8 ms 300 KB Output is correct
25 Correct 7 ms 340 KB Output is correct
26 Correct 7 ms 340 KB Output is correct
27 Correct 7 ms 308 KB Output is correct
28 Correct 8 ms 212 KB Output is correct
29 Correct 7 ms 212 KB Output is correct
30 Correct 8 ms 296 KB Output is correct
31 Correct 4 ms 216 KB Output is correct
32 Correct 6 ms 324 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1565 ms 8336 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 7 ms 300 KB Output is correct
24 Correct 7 ms 212 KB Output is correct
25 Correct 8 ms 320 KB Output is correct
26 Correct 8 ms 340 KB Output is correct
27 Correct 7 ms 212 KB Output is correct
28 Correct 7 ms 332 KB Output is correct
29 Correct 8 ms 320 KB Output is correct
30 Correct 8 ms 300 KB Output is correct
31 Correct 4 ms 212 KB Output is correct
32 Correct 8 ms 320 KB Output is correct
33 Execution timed out 1562 ms 12344 KB Time limit exceeded
34 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 220 KB Output is correct
14 Correct 0 ms 220 KB Output is correct
15 Correct 0 ms 220 KB Output is correct
16 Correct 0 ms 220 KB Output is correct
17 Correct 0 ms 220 KB Output is correct
18 Correct 0 ms 220 KB Output is correct
19 Correct 0 ms 220 KB Output is correct
20 Correct 0 ms 220 KB Output is correct
21 Correct 0 ms 220 KB Output is correct
22 Correct 0 ms 220 KB Output is correct
23 Correct 8 ms 340 KB Output is correct
24 Correct 8 ms 220 KB Output is correct
25 Correct 7 ms 348 KB Output is correct
26 Correct 8 ms 348 KB Output is correct
27 Correct 8 ms 308 KB Output is correct
28 Correct 8 ms 220 KB Output is correct
29 Correct 8 ms 296 KB Output is correct
30 Correct 8 ms 312 KB Output is correct
31 Correct 4 ms 304 KB Output is correct
32 Correct 6 ms 224 KB Output is correct
33 Execution timed out 1584 ms 10496 KB Time limit exceeded
34 Halted 0 ms 0 KB -