제출 #1352121

#제출 시각아이디문제언어결과실행 시간메모리
1352121travissow9월 (APIO24_september)C++20
100 / 100
129 ms9832 KiB
#include "september.h"
#include <bits/stdc++.h>
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);  
using namespace std;
typedef long long ll;

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	fast;
	for (int i=0;i<M;i++) {
        reverse(S[i].begin(),S[i].end());
    }
    unordered_set<int> constructed = {0};
    unordered_set<int> today = {};
    int fall = 0;
    int count = 0;
    for (int i=0;i<N-1;i++) {
        for (int j=0;j<M;j++) {
            today.insert(S[j][i]);
        }
        fall++;
        if (today.size() != fall) continue;
        bool works = true;
        for (auto u: today) {
            if (!(today.count(F[u]) || constructed.count(F[u]))) {
                works = false;
                break;
            }
        }
        if (!works) continue;
        count++;
        fall = 0;
        for (auto u: today) {
            constructed.insert(u);
        }
        today.clear();
    }
    return count;
}
#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...