제출 #1347351

#제출 시각아이디문제언어결과실행 시간메모리
1347351jahinahnafPyramids (IOI24_pyramids)C++17
100 / 100
32 ms5068 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long int;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vll = vector<ll>;
using vpii = vector<pair<int,int>>;

#define pb push_back
const ll MOD = 10e9;

vll prefixSumA;
vll prefixSumB;

void init(vi A, vi B){
	prefixSumA.resize(A.size(), 0);
	prefixSumB.resize(B.size(), 0);

	prefixSumA[0] = A[0];
	prefixSumB[0] = B[0];

	for (int i = 1; i < A.size(); i++){
		prefixSumA[i] = A[i] + prefixSumA[i-1];
		prefixSumB[i] = B[i] + prefixSumB[i-1];
	}
}

bool can_transform(int L, int R, int X, int Y){
	ll lrSum, xySum;

	if (L == 0){
		lrSum = prefixSumA[R];
	}
	else if (L > 0) {
		lrSum = prefixSumA[R] - prefixSumA[L - 1];
	}
	if (X == 0){
		xySum = prefixSumB[Y];
	}
	else if (X > 0) {
		xySum = prefixSumB[Y] - prefixSumB[X - 1];
	}
	if (lrSum == xySum) {
		return true;
	}
	else return false;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...