이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "plants.h"
#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
const int N = 2e5 + 10;
int n , k , f[2][N];
vector <int> a;
void init(int kk, vector<int> r) {
a = r;
k = kk;
n = r.size();
f[0][n - 1] = -1;
f[1][n - 1] = -1;
f[a[n - 1]][n - 1] = n - 1;
for(int i = n - 2 ; i >= 0 ; i--)
{
f[0][i] = f[0][i + 1];
f[1][i] = f[1][i + 1];
f[a[i]][i] = i;
}
for(int i = n - 1 ; i >= 0 ; i--)
{
if(f[0][i] == -1)
f[0][i] = f[0][0];
if(f[1][i] == -1)
f[1][i] = f[1][0];
}
return;
}
int compare_plants(int x, int y) {
int res = 1;
if(x > y)
{
swap(x , y);
res = -1;
}
int ans = 0;
if(f[0][x] >= y || f[0][x] < x)
{
ans = res * -1;
}
else if(f[1][x] >= y || f[1][x] < x)
{
ans = res;
}
else if(f[0][y] >= x && f[0][y] < y)
{
ans = res;
}
else if(f[1][y] >= x && f[1][y] < y)
ans = res * -1;
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |