| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 496690 | Hanksburger | Comparing Plants (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... | ||||
