Submission #1084836

#TimeUsernameProblemLanguageResultExecution timeMemory
1084836TimoshSeptember (APIO24_september)C++17
100 / 100
126 ms10056 KiB
#include <bits/stdc++.h>
using namespace std;
// #include "september.h"

int solve(int N, int M, vector<int> F, vector<vector<int>> S)
{
    vector<int> freq(N);
    int ans = 0;
    for (int i = 1; i < N; i++)
        freq[F[i]]++;
    map<int, int> mp;
    int cnt = 0;
    set<int> need;
    for (int i = 0; i < N - 1; i++)
    {
        for (int j = 0; j < M; j++)
        {
            mp[S[j][i]]++;
            if (mp[S[j][i]] == 1)
                cnt++;
            if (mp[S[j][i]] == M)
                cnt--;
        }
        if (cnt == 0)
        {
            for (auto &[key, val] : mp)
            {
                freq[F[key]]--;
                if (freq[F[key]] == 0)
                    need.erase(F[key]);
                if (freq[key] != 0)
                    need.insert(key);
            }
            ans += need.size() == 0;
            mp.clear();
        }
    }
    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...