Submission #833460

#TimeUsernameProblemLanguageResultExecution timeMemory
833460vjudge1Exam (eJOI20_exam)C++98
0 / 100
12 ms1100 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N = 1005; int par[N], sz[N]; bool vis[N]; int n, cnt = 0, input, x; bool s1 = false, s2, s3, s4 = true; vector<int> h; vector<int> t; int findpar(int a){ if(a == par[a]) return a; return par[a] = findpar(par[a]); } void merge(int a, int b){ a = findpar(a); b = findpar(b); if(a == b) return; par[b] = a; sz[a] += sz[b]; } void dfs(int a){ vis[a] = true; if(a+1 < n){ if(a+1 < n && h[a+1] <= t[0]){ merge(a, a+1); } } if(a-1 >= 0){ if(a-1 >= 0 && h[a-1] <= t[0]){ merge(a, a-1); } } if(a+1 < n){ if(a+1 < n && h[a+1] <= t[0] && !vis[a+1]) dfs(a+1); } if(a-1 >= 0){ if(a-1 >= 0 && h[a-1] <= t[0] && !vis[a-1]) dfs(a-1); } } int main(){ cin >> n; for(int i = 0; i < n; i++){ cin >> input; h.push_back(input); } for(int i = 0; i < n; i++){ cin >> input; t.push_back(input); } for(int i = 0; i < N; i++){ par[i] = i; sz[i] = 1; vis[i] = false; } s2 = true; for(int i = 1; i < n; i++){ if(t[i] != t[i-1]) s2 = false; } s3 = false; for(int i = 1; i < n; i++){ if(t[i] <= t[i-1]) s3 = false; } if(n <= 10) s1 = true; if(s1){ } if(s2){ for(int i = 0; i < n; i++){ if(h[i] == t[0]) dfs(i); } for(int i = 0; i < N; i++){ vis[i] = false; } for(int i = 0; i < n; i++){ x = findpar(i); if(vis[x]) continue; vis[x] = true; if(sz[x] != 1 || (sz[x] == 1 && h[x] == t[0])){ cnt += sz[x]; } } cout << cnt; return 0; } if(s3 || s4){ vector<int> lis; vector<int>::iterator it; for(int i = 0; i < n; i++){ it = lower_bound(lis.begin(),lis.end(), t[i]); if(it == lis.end()){ lis.push_back(t[i]); } else{ *it = t[i]; } } } }
#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...