Submission #1325058

#TimeUsernameProblemLanguageResultExecution timeMemory
1325058faricaHorses (IOI15_horses)C++20
Compilation error
0 ms0 KiB
#include "horses.h"
#include <bits/stdc++.h>
#define se second
#define fi first

using namespace std;
using ll = long long;
using pi = pair<int,int>;
using vi = vector<int>;

const int MOD = 1e9 + 7;
const int MAX_N = 5e5 + 5;

struct Node {
	int val = 1, X = 1, Y = 1;
} segm[MAX_N];

void updatey(int pos, int l, int r, int x, int val) {
	if(l == r) {
		segm[pos].val = (1ll * val * segm[pos].X) % MOD;
		segm[pos].Y = val;
		return;
	}
	int m = (l+r)/2;
	if(m >= x) updatey(2*pos+1, l, m, x, val);
	else updatey(2*pos+2, m+1, r, x, val);
	segm[pos].val = max(1ll * segm[2*pos+1].val, 1ll * segm[2*pos+1].X * segm[2*pos+2].val % MOD);
}

void updatex(int pos, int l, int r, int x, int val) {
	if(l > x or r < x) return;
	if(l == r) {
		segm[pos].val = (1ll * segm[pos].Y * val) % MOD;
		segm[pos].X = val;
		return;
	}
	int m = (l+r)/2;
	updatex(2*pos+1, l, m, x, val);
	updatex(2*pos+2, m+1, r, x, val);
	segm[pos].val = max(1ll * segm[2*pos+1].val, 1ll * segm[2*pos+1].X * segm[2*pos+2].val % MOD);
	segm[pos].X = (1ll * segm[2*pos+1].X * segm[2*pos+2].X) % MOD;
}

int N2;

int init(int N, int X[], int Y[]) {
	X2.resize(N);
	Y2.resize(N);
	for(int i=0; i<N; ++i) {
		updatex(1, 0, N-1, i, X[i]);
		X2[i] = X[i];
		updatey(1, 0, N-1, i, Y[i]);
		Y2[i] = Y[i];
	}
	N2 = N;
	return segm[1].val;
}

int updateX(int pos, int val) {	
	updatex(1, 0, N2-1, pos, val);
	return segm[1].val;
}

int updateY(int pos, int val) {
	updatey(1, 0, N2-1, pos, val);
	return segm[1].val;
}

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:47:9: error: 'X2' was not declared in this scope; did you mean 'X'?
   47 |         X2.resize(N);
      |         ^~
      |         X
horses.cpp:48:9: error: 'Y2' was not declared in this scope; did you mean 'Y'?
   48 |         Y2.resize(N);
      |         ^~
      |         Y