Submission #1185203

#TimeUsernameProblemLanguageResultExecution timeMemory
1185203MighilonSeptember (APIO24_september)C++20
100 / 100
76 ms8076 KiB
#include <bits/stdc++.h> using namespace std; #ifdef DEBUG #include "../Library/debug.h" #else #include "september.h" #define dbg(x...) #endif typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define F0R(i, a) for (int i = 0; i < (a); ++i) #define FORd(i, a, b) for (int i = (b) - 1; i >= (a); --i) #define F0Rd(i, a) for (int i = (a) - 1; i >= 0; --i) #define trav(a, x) for (auto& a : x) #define f first #define s second #define pb push_back #define sz(x) (int)(x).size() #define all(x) x.begin(), x.end() const char nl = '\n'; const int INF = 1e9; const ll MOD = 998244353; const int mxN = 3e5+5; int solve(int n,int m,vi p,vector<vi> s){ vector<vi> cnt(m,vi(n-1)); F0R(i,m){ vi vis(n),id(n); F0R(j,n-1){ id[s[i][j]]=j; } int mn=n-1; int c=0; F0Rd(j,n-1){ // dbg(j,s[i][j],p[s[i][j]],vis[p[s[i][j]]]) if(p[s[i][j]]==0||vis[p[s[i][j]]]){ } else{ mn=min(mn,id[p[s[i][j]]]); vis[s[i][j]]=1; } cnt[i][j]=c; if(j<=mn){ c++; mn=j; } } } // dbg(cnt) int ans=1; vi c(n); int _c=0; F0R(i,n-2){ bool x=true; F0R(j,m){ c[s[j][i]]++; if(c[s[j][i]]==m) _c++; if(cnt[j][i]==cnt[j][i+1]) x=false; } if(x&&_c==(i+1))ans++; } return ans; } #ifdef DEBUG int32_t main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); // cout<<solve(3,1,{-1,0,0},{{1,2}})<<nl; // cout<<solve(5,2,{-1,0,0,1,1},{{1,2,3,4},{4,1,2,3}})<<nl; int n,m; cin>>n>>m; vi p(n); F0R(i,n)cin>>p[i]; vector<vi> a(m,vi(n-1)); F0R(i,m)F0R(j,n-1)cin>>a[i][j]; cout<<solve(n,m,p,a)<<endl; } #endif
#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...