Submission #620749

# Submission time Handle Problem Language Result Execution time Memory
620749 2022-08-03T08:45:04 Z Hazem Horses (IOI15_horses) C++14
34 / 100
1500 ms 15968 KB
#include <bits/stdc++.h>
#define LL long long

using namespace std;

const int M = 5e5+10;
const int MOD = 1e9+7;

LL add(LL a,LL b){
	return (a+b)%MOD;
}

LL mult(LL a,LL b){
	return (a*b)%MOD;
}

LL fastpow(LL n,LL k){

	LL ret = 1;

	while(k){

		if(k&1)ret = mult(ret,n);
		k /= 2;
		n = mult(n,n);
	}
	return ret;
}

LL divide(LL a,LL b){
	return mult(a,fastpow(b,MOD-2));
}

LL a[M],b[M],n;
LL pr = 1;

LL calc(){

	LL idx = 1,cur = 1;
	for(int i= 2;i<=n;i++){
		
		if((cur*a[i]>b[idx])||(cur*a[i]*b[i]>b[idx]))
			idx = i,cur = 1;
		else 
			cur *= a[i];
	}

	cur = 1;
	for(int i=1;i<=idx;i++)
		cur = mult(cur,a[i]);
	
	return mult(cur,b[idx]);
}

int init(int N, int X[], int Y[]) {
	
	n = N;
	a[0] = 1;
	for(int i=1;i<=n;i++){
		a[i] = X[i-1];
		b[i] = Y[i-1];
	}

	return calc();
}

int updateX(int pos, int val) {	
	
	a[pos+1] = val;

	return calc();
}

int updateY(int pos, int val) {
	
	b[pos+1] = val;

	return calc();
}

Compilation message

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:64:13: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   64 |  return calc();
      |         ~~~~^~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:71:13: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   71 |  return calc();
      |         ~~~~^~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:78:13: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   78 |  return calc();
      |         ~~~~^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 232 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 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 1 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 1 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 1 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 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 1 ms 212 KB Output is correct
13 Correct 1 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 8 ms 340 KB Output is correct
24 Correct 7 ms 340 KB Output is correct
25 Correct 6 ms 340 KB Output is correct
26 Correct 7 ms 348 KB Output is correct
27 Correct 6 ms 352 KB Output is correct
28 Correct 7 ms 340 KB Output is correct
29 Correct 5 ms 340 KB Output is correct
30 Correct 6 ms 340 KB Output is correct
31 Correct 3 ms 340 KB Output is correct
32 Correct 5 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1577 ms 12040 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 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 2 ms 212 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 9 ms 372 KB Output is correct
24 Correct 8 ms 324 KB Output is correct
25 Correct 7 ms 340 KB Output is correct
26 Correct 9 ms 372 KB Output is correct
27 Correct 6 ms 340 KB Output is correct
28 Correct 7 ms 364 KB Output is correct
29 Correct 5 ms 320 KB Output is correct
30 Correct 6 ms 328 KB Output is correct
31 Correct 4 ms 340 KB Output is correct
32 Correct 4 ms 320 KB Output is correct
33 Execution timed out 1554 ms 15968 KB Time limit exceeded
34 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 312 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 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 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 2 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 312 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 308 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 7 ms 340 KB Output is correct
24 Correct 7 ms 320 KB Output is correct
25 Correct 7 ms 324 KB Output is correct
26 Correct 7 ms 340 KB Output is correct
27 Correct 8 ms 368 KB Output is correct
28 Correct 9 ms 364 KB Output is correct
29 Correct 6 ms 340 KB Output is correct
30 Correct 6 ms 340 KB Output is correct
31 Correct 4 ms 340 KB Output is correct
32 Correct 5 ms 340 KB Output is correct
33 Execution timed out 1566 ms 14200 KB Time limit exceeded
34 Halted 0 ms 0 KB -