답안 #1054608

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1054608 2024-08-12T11:02:14 Z c2zi6 식물 비교 (IOI20_plants) C++14
14 / 100
4000 ms 9552 KB
#define _USE_MATH_DEFINES
#include <bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define all(a) (a).begin(), (a).end()
#define replr(i, a, b) for (int i = int(a); i <= int(b); ++i)
#define reprl(i, a, b) for (int i = int(a); i >= int(b); --i)
#define rep(i, n) for (int i = 0; i < int(n); ++i)
#define mkp(a, b) make_pair(a, b)
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<PII> VPI;
typedef vector<VI> VVI;
typedef vector<VVI> VVVI;
typedef vector<VPI> VVPI;
typedef pair<ll, ll> PLL;
typedef vector<ll> VL;
typedef vector<PLL> VPL;
typedef vector<VL> VVL;
typedef vector<VVL> VVVL;
typedef vector<VPL> VVPL;
template<class T> T setmax(T& a, T b) {if (a < b) return a = b; return a;}
template<class T> T setmin(T& a, T b) {if (a < b) return a; return a = b;}
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
template<class T>
using indset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#include "plants.h"

namespace TEST2 {
    VI a;
    void init(int k, VI r) {
        int n = r.size();
        a = VI(n);
        int mx = n-1;
        while (mx >= 0) {
            bool worked = false;
            /*cout << "SEARCHING WHERE IS " << mx << endl;*/
            rep(i, n) {
                if (r[i] == 0) {
                    bool canbe = true;
                    int ii = i-1;
                    rep(j, k-1) {
                        if (ii == -1) ii = n-1;
                        if (r[ii--] == 0) {
                            canbe = false;
                            break;
                        }
                    }
                    /*cout << "I THOUGHT IT WAS AT " << i << endl;*/
                    if (!canbe) continue;

                    worked = true;
                    a[i] = mx--;
                    rep(j, k) {
                        if (i == -1) i = n-1;
                        r[i--]--;
                    }
                    break;
                }
            }
            assert(worked);
        }
        /*for (int x : a) cout << x << " "; cout << endl;*/
    }
    int compare_plants(int x, int y) {
        if (a[x] > a[y]) return +1;
        if (a[x] < a[y]) return -1;
        return 0;
    }
};

bool test2;

void init(int k, VI r) {
    test2 = true;
    if (test2) TEST2::init(k, r);
}

int compare_plants(int x, int y) {
    if (test2) return TEST2::compare_plants(x, y);
	return 0;
}





# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Incorrect 0 ms 348 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 344 KB Output is correct
7 Correct 68 ms 5228 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 3 ms 348 KB Output is correct
10 Correct 68 ms 5004 KB Output is correct
11 Correct 54 ms 4944 KB Output is correct
12 Correct 58 ms 5260 KB Output is correct
13 Correct 76 ms 5024 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 344 KB Output is correct
7 Correct 68 ms 5228 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 3 ms 348 KB Output is correct
10 Correct 68 ms 5004 KB Output is correct
11 Correct 54 ms 4944 KB Output is correct
12 Correct 58 ms 5260 KB Output is correct
13 Correct 76 ms 5024 KB Output is correct
14 Correct 508 ms 5584 KB Output is correct
15 Execution timed out 4038 ms 9552 KB Time limit exceeded
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 30 ms 4944 KB Output is correct
4 Execution timed out 4070 ms 8788 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Incorrect 0 ms 348 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Incorrect 0 ms 348 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Incorrect 0 ms 348 KB Output isn't correct
5 Halted 0 ms 0 KB -