이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "plants.h"
#include <bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < (int)(n); i ++)
#define rep1(i, n) for(int i = 1; i <= (int)(n); i ++)
#define MP make_pair
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
int t[305];
bool rem[305], mark[305];
void init(int k, vector<int> r)
{
int n = (int) r.size();
int T = 0;
rep(i, n) r[i] = k - 1 - r[i];
while(1) {
bool ok = false;
rep(i, n) if(!rem[i]) ok = true;
if(!ok) break;
rep(i, n) mark[i] = false;
rep(i, n) if(!rem[i]) {
int cnt = 0;
rep1(j, k - 1) if(!rem[(i + j) % n]) cnt ++;
if(r[i] >= cnt) {
rep1(j, k - 1) mark[(i + j) % n] = true;
}
}
vector<int> vec;
rep(i, n) if(!rem[i]) {
int cnt = 0;
rep1(j, k - 1) if(!rem[(i + j) % n]) cnt ++;
if(r[i] >= cnt && !mark[i]) vec.push_back(i);
}
assert(!vec.empty());
rep(id, vec.size()) {
int i = vec[id];
t[i] = T;
rem[i] = true;
}
T ++;
}
return;
}
int compare_plants(int x, int y)
{
return (t[x] == t[y] ? 0 : (t[x] < t[y] ? 1 : -1));
}
/*
4 3 2
0 1 1 2
0 2
1 2
4 2 2
0 1 0 1
0 3
1 3
*/
# | 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... |