제출 #1332682

#제출 시각아이디문제언어결과실행 시간메모리
1332682michael129월 (APIO24_september)C++20
0 / 100
1 ms344 KiB
#include "september.h"
#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define endl '\n'
using namespace std;
const int maxn = 1e6 + 10;
int solve(int N, int M, vector<int> F, vector<vector<int>> S){
    vector<int> adj[N];
    // for(int i = 1; i < N; i++){
    //     F[i]--;
    //    adj[i].push_back(F[i]);
    //    adj[F[i]].push_back(i);
    // }
    vector<int> mx(N, 0);
    for(int i = 0; i < M; i++){
       for(int j = 0; j < N - 1; j++){
          mx[S[i][j]] = max(mx[S[i][j]], j);
       }    
    }
    for(int i = N - 1; i >= 1; i--){
        mx[F[i]] = max(mx[i], mx[F[i]]);
    }
    int Mx = -1;
    int cur = 0;
    for(int i = 0; i < N - 1; i++){
        if(i > Mx){
            cur += 1;
        }
       for(int j = 0; j < M; j++){
          Mx = max(Mx, mx[S[i][j]]);
       }
    }
    return cur;
}
// signed main(){
//     ios::sync_with_stdio(false);
//     cin.tie(nullptr);
//     int N, M;
//     cin >> N >> M;
//     vector<int> p(N);
//     for(int i = 0; i < N; i++){
//         cin >> p[i];
//     }
//     vector<vector<int>> s(M, vector<int>(N - 1));
//     for(int i = 0; i < M; i++){
//         for(int j = 0; j < N - 1; j++){
//             cin >> s[i][j];
//         }
//     }
//     cout << solve(N, M, p, 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...