Submission #314639

# Submission time Handle Problem Language Result Execution time Memory
314639 2020-10-20T14:00:44 Z kostia244 Comparing Plants (IOI20_plants) C++17
14 / 100
4000 ms 9464 KB
#include "plants.h"
#include<bits/stdc++.h>
using ll = long long;
using namespace std;
const int maxn = 1<<17;
int n, k, ord[maxn], ord2[maxn], oh[maxn];
int in(int l, int r, int x) {
	if(l >= n) l%=n;
	if(r >= n) r%=n;
	if(l > r) {
		return in(l, n-1, x) || in(0, r, x);
	}
	return l <= x && x <= r;
}
void ah(int i, int x) {
	for(int j = 1; j < k; j++) oh[(i+j)%n]+=x;
}
void init(int K, std::vector<int> r) {
	k = K;
	n = r.size();
	if(k == 2) {
		int cur = 0;
		for(int j = 0, i = 0; i < n; i++) {
			while(r[j]) j = (j+1)%n;
			ord[i] = j;
			if(i == j) j++;
		}
		for(int j = 0, i = 0; i < n; i++) {
			while(!r[j]) j = (j+1)%n;
			ord2[i] = j;
			if(i == j) j++;
		}
		return;
	}
	for(int i = 0; i < n; i++) if(r[i] == 0) ah(i, 1);
	for(int L = n; L; L--) {
		int f = 1;
		for(int i = 0; f && i < n; i++) if(!oh[i] && r[i] == 0 && !ord[i]) {
			ord[i] = L;
			ah(i, -1);
			for(int j = 1; j < k; j++) {
				int pos = (n-j+i)%n;
				if(--r[pos] == 0) ah(pos, 1);
			}
			f = 0;
		}
	}
	return;
}

int compare_plants(int x, int y) {
	if(k == 2) {
		if(in(x, ord[x], y) || in(y, ord2[y], x)) return -1;
		if(in(y, ord[y], x) || in(x, ord2[x], y)) return 1;
		return 0;
	}
	return (ord[x] > ord[y]) - (ord[x] < ord[y]);
}

Compilation message

plants.cpp: In function 'void init(int, std::vector<int>)':
plants.cpp:22:7: warning: unused variable 'cur' [-Wunused-variable]
   22 |   int cur = 0;
      |       ^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 63 ms 3192 KB Output is correct
7 Correct 80 ms 3448 KB Output is correct
8 Runtime error 84 ms 9464 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 18 ms 384 KB Output is correct
7 Correct 457 ms 3320 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 19 ms 384 KB Output is correct
10 Correct 459 ms 3336 KB Output is correct
11 Correct 319 ms 3192 KB Output is correct
12 Correct 317 ms 3576 KB Output is correct
13 Correct 552 ms 3320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 18 ms 384 KB Output is correct
7 Correct 457 ms 3320 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 19 ms 384 KB Output is correct
10 Correct 459 ms 3336 KB Output is correct
11 Correct 319 ms 3192 KB Output is correct
12 Correct 317 ms 3576 KB Output is correct
13 Correct 552 ms 3320 KB Output is correct
14 Execution timed out 4067 ms 2944 KB Time limit exceeded
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 70 ms 3192 KB Output is correct
4 Execution timed out 4011 ms 5452 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 288 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Incorrect 1 ms 256 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Incorrect 0 ms 256 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 63 ms 3192 KB Output is correct
7 Correct 80 ms 3448 KB Output is correct
8 Runtime error 84 ms 9464 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Halted 0 ms 0 KB -