Submission #1194131

#TimeUsernameProblemLanguageResultExecution timeMemory
1194131alex_20089월 (APIO24_september)C++20
59 / 100
93 ms10944 KiB
#include "september.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <map>
#include <set>
#include <unordered_set>
#include <cassert>
#include <deque>
#include <queue>
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
vector <vector<int>> G;
int uncert[10];
bool marked[10][N];
int solve(int n, int m, vector <int> par, vector <vector<int>> a) {
    G.resize(n);
    for (int i = 0; i < n; i++) {
        G[i].clear();
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            marked[i][j] = false;
        }
    }
    for (int i = 1; i < n; i++) {
        G[par[i]].push_back(i);
    }
    int ans = 0;
    for (int j = 0; j < n - 1; j++) {
        bool ch = true;
        for (int i = 0; i < m; i++) {
            marked[i][a[i][j]] = true;
            for (auto it : G[a[i][j]]) {
                if (!marked[i][it]) uncert[i]++;
            }
            if (marked[i][par[a[i][j]]]) uncert[i]--;
            if (uncert[i]) ch = false;
        }
        if (ch) ans++;
    }
    return ans;
}
#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...