제출 #1361989

#제출 시각아이디문제언어결과실행 시간메모리
1361989hoang5cngocthanhBOI Acronym (BOI25_boi)C++20
100 / 100
201 ms16160 KiB
// Source: https://oj.uz/problem/view/BOI25_boi

#include <bits/stdc++.h>

int main() {
    int n;
    std::cin >> n;
    std::vector<std::vector<int>> m(n + 1, std::vector<int>(n + 1, 0));
    for (int i = 1; i <= n; i++) {
        for (int j = i; j <= n; j++) {
            std::cin >> m[i][j];
        }
    }
    if (n == 1) {
        std::cout << 1;
        return 0;
    }
    int f = -1;
    for (int i = 1; i < n; i++) {
        if (m[i][n] > m[i + 1][n]) {
            f = i;
            break;
        }
    }
    int l = n;
    for (int i = n; i >= 2; i--) {
        if (m[1][i] > m[1][i - 1]) {
            l = i;
            break;
        }
    }
    std::vector<int> ans;
    ans.push_back(f);
    for (int i = f + 1; i < l; i++) {
        if (m[f][i] > m[f + 1][i]) {
            if (m[f][i] > m[f][i - 1]) {
                ans.push_back(i);
                continue;
            }
        }
        if (m[i][l] > m[i][l - 1]) {
            if (m[i][l] > m[i + 1][l]) {
                ans.push_back(i);
                continue;
            }
        }
        if (m[f][i] == m[f + 1][i] && m[i][l] == m[i][l - 1]) {
            if (m[f + 1][i] > m[f + 1][i - 1]) continue;
            if (m[i][l - 1] > m[i + 1][l - 1]) continue;
            ans.push_back(i);
        }
    }
    ans.push_back(l);
    for (auto x : ans) {
        std::cout << x << ' ';
    }

    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…