# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
496690 | Hanksburger | 식물 비교 (IOI20_plants) | C++17 | 217 ms | 5828 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
int S[200005], T[200005], N, K;
bool subtask1, subtask2;
vector<int> R;
void init(int k, vector<int> r)
{
N=r.size();
K=k;
R=r;
if (K==2)
{
subtask1=1;
for (int i=0; i<N; i++)
{
for (int j=i+1; j<N; j++)
{
if (R[i]!=R[j])
{
for (int l=i; l<j; l++)
S[l]=j;
i=j-1;
break;
}
}
if (S[i]==0)
{
for (int j=0; j<i; j++)
{
if (R[i]!=R[j])
{
for (int l=i; l<N; l++)
S[l]=j;
i=N-1;
break;
}
}
}
}
}
else if (N<=5000 && 2*K>N)
{
subtask2=1;
for (int i=1; i<=N; i++)
{
int cnt=0;
for (int j=N-K+1; j<N; j++)
{
if (R[j] || T[j])
cnt++;
else
cnt=0;
}
for (int j=0; j<N; j++)
{
if (R[j] || T[j])
{
cnt++;
continue;
}
if (cnt>=K-1)
{
T[j]=i;
for (int l=(j-K+1+N)%N; l!=j; l=(l+1)%N)
R[l]--;
break;
}
cnt=0;
}
}
}
}
int compare_plants(int x, int y)
{
if (subtask1)
{
if (S[x]>=y || S[x]<x)
{
if (R[x])
return -1;
else
return 1;
}
else if (S[y]>=x && S[y]<y)
{
if (R[y])
return 1;
else
return -1;
}
return 0;
}
else if (subtask2)
{
if (T[x]<T[y])
return 1;
else
return -1;
}
}
Compilation message (stderr)
# | 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... |