제출 #1332908

#제출 시각아이디문제언어결과실행 시간메모리
1332908AhmadAlhussainBOI Acronym (BOI25_boi)C++20
100 / 100
105 ms14368 KiB
#include<bits/stdc++.h>
using namespace std;
const int N=2005,MXN=1e6+5;
int n;
int m[N][N];
bool check(vector<char> &s) {
    int cnt[3]={};
    for(int j=s.size()-1;j>=0;j--) {
        cnt[s[j]-'B']++;
        if(*max_element(cnt,cnt+3)!=m[j][s.size()-1]) {
            return false;
        }
    }
    if(s.size()==n) {
        int u=*max_element(cnt,cnt+3);
        int pos=0;
        for(int i=0;i<3;i++) {
            if(cnt[i]==u) {
                pos=i;
            }
        }
        for(int i=0;i<n;i++) {
            if(s[i]==pos+'B') {
                cout<<i+1<<' ';
            }
        }
        exit(0);
    }
    return true;
}
void rec(vector<char> &s) {
    for(char i='B';i<='D';i++) {
        s.push_back(i);
        if(check(s)) {
            rec(s);
        }
        s.pop_back();
    }

}
signed main() {
    cin.tie(0)->sync_with_stdio(0);
    cin>>n;
    for(int i=0;i<n;i++) {
        for(int j=i;j<n;j++) {
            cin>>m[i][j];
        }
    }
    vector<char> s;
    rec(s);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...