Submission #1193393

#TimeUsernameProblemLanguageResultExecution timeMemory
1193393yuichiro17September (APIO24_september)C++20
55 / 100
1095 ms2636 KiB
#include "september.h" #include <bits/stdc++.h> using namespace std; int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { vector<vector<int>> s(1); vector<vector<bool>> vs(M,vector<bool>(N,false)); vector<int> rs(N); rs[0]=N; for(int i=0;i<N-1;i++){ s[s.size()-1].push_back(S[0][i]); rs[S[0][i]] = s.size()-1; bool flag=true; for(int j=0;j<M;j++){ vs[j][S[j][i]]=true; if(vs[j]!=vs[0]){ flag=false; } } if(flag){ s.push_back({}); } } s.pop_back(); int ans=0; int mi=s.size()-1; for(int i=s.size()-1;i>=0;i--){ if(mi>i){ mi=i; } for(int j:s[i]){ mi = min(mi,rs[F[j]]); } if(mi==i){ 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...