Submission #1307989


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define DUMP(x) cerr << #x << "=" << x << endl
#define DUMP2(x, y) cerr<<"("<<#x<<", "<<#y<<") = ("<<x<<", "<<y<<")"<< endl
#define BINARY(x) static_cast<bitset<16> >(x)

#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define REP(i,m,n) for (int i=m;i<(int)(n);i++)

#define in_range(x, y, w, h) (0<=(int)(x) && (int)(x)<(int)(w) && 0<=(int)(y) && (int)(y)<(int)(h))
#define ALL(a) (a).begin(),(a).end()

typedef long long ll;
const int INF   = 1e9;
const ll  INFLL = 1e18;
typedef pair<int, int> PII;
int dx[4]={0, -1, 1, 0}, dy[4]={-1, 0, 0, 1};

int main()
{
    ios::sync_with_stdio(false);

    int N; cin >> N;
    vector<PII> X(N);
    int NN = N*N;
    vector<int> ans(NN);
    rep(i, N) {
        int tmp; cin >> tmp;
        X[i] = PII(tmp-1, i+1);
    }
    sort(ALL(X));

    bool ok = true;

    for (auto x : X) {
        ans[x.first] = x.second;
        if (x.second == 1) continue;

        int cnt = 0;
        for (int i=0; i<x.first; i++) {
            if (ans[i] == 0) {
                ans[i] = x.second;
                cnt++;
            }

            if (cnt == x.second - 1) break;
        }

        if (cnt < x.second-1) {
            ok = false;
            break;
        }
    }

    for (int j=N-1; j>=0; j--) {
        PII x = X[j];
        if (x.second == N) continue;

        int cnt = 0;
        for (int i=NN-1; i>x.first; i--) {
            if (ans[i] == 0) {
                ans[i] = x.second;
                cnt++;
            }

            if (cnt == N - x.second) break;
        }

        if (cnt < N - x.second) {
            ok = false;
            break;
        }
    }

    if (ok) {
        cout << "Yes" << endl;
        rep(i, NN) {
            // if (i > 0) cout << " ";
            cout << ans[i] << " ";
        }
        cout << endl;
    } else {
        cout << "No" << endl;
    }
}

Submission Info

Submission Time
Task D - K-th K
User OUDON
Language C++14 (GCC 5.4.1)
Score 800
Code Size 1973 Byte
Status AC
Exec Time 100 ms
Memory 2304 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 2
AC × 49
Set Name Test Cases
Sample 0_00.txt, 0_01.txt
All 0_00.txt, 0_01.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 59 ms 2176 KB
1_02.txt AC 60 ms 2176 KB
1_03.txt AC 59 ms 2176 KB
1_04.txt AC 59 ms 2176 KB
1_05.txt AC 100 ms 2176 KB
1_06.txt AC 100 ms 2176 KB
1_07.txt AC 100 ms 2304 KB
1_08.txt AC 99 ms 2176 KB
1_09.txt AC 22 ms 1280 KB
1_10.txt AC 22 ms 1280 KB
1_11.txt AC 2 ms 1280 KB
1_12.txt AC 42 ms 1280 KB
1_13.txt AC 42 ms 1280 KB
1_14.txt AC 2 ms 1280 KB
1_15.txt AC 48 ms 1536 KB
1_16.txt AC 33 ms 1152 KB
1_17.txt AC 27 ms 1152 KB
1_18.txt AC 68 ms 1920 KB
1_19.txt AC 72 ms 2048 KB
1_20.txt AC 51 ms 1664 KB
1_21.txt AC 70 ms 2048 KB
1_22.txt AC 61 ms 1792 KB
1_23.txt AC 28 ms 1024 KB
1_24.txt AC 68 ms 2048 KB
1_25.txt AC 51 ms 1664 KB
1_26.txt AC 25 ms 1024 KB
1_27.txt AC 19 ms 896 KB
1_28.txt AC 32 ms 1152 KB
1_29.txt AC 48 ms 1280 KB
1_30.txt AC 66 ms 1920 KB
1_31.txt AC 74 ms 2048 KB
1_32.txt AC 25 ms 1024 KB
1_33.txt AC 71 ms 2048 KB
1_34.txt AC 30 ms 1152 KB
1_35.txt AC 17 ms 896 KB
1_36.txt AC 70 ms 2048 KB
1_37.txt AC 63 ms 1920 KB
1_38.txt AC 75 ms 2048 KB
1_39.txt AC 26 ms 1152 KB
1_40.txt AC 23 ms 1024 KB
1_41.txt AC 32 ms 1280 KB
1_42.txt AC 39 ms 1408 KB
1_43.txt AC 65 ms 1920 KB
1_44.txt AC 17 ms 896 KB
1_45.txt AC 27 ms 1152 KB
1_46.txt AC 35 ms 1152 KB