開啟章節選單
111 History Grading
#include <bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #define INF LONG_LONG_MAX/1000 #define WA() cin.tie(0)->sync_with_stdio(0) #define all(x) (x).begin(), (x).end() #define int long long #define PII pair<int, int> signed main() { WA(); int n, x; string s; getline(cin, s); while (getline(cin, s)) { vector<int> a; stringstream ss(s); while (ss >> x) a.pb(x); n = a.size(); while (getline(cin, s) && s.size() > 2) { vector<int> b; ss.clear(); ss.str(s); while (ss >> x) b.pb(x); vector<int> dp(n, 1), c(n); for (int i = 0; i < n; i++) c[a[i]-1] = b[i]; for (int i = 0; i < n; i++) for (int j = i+1; j < n; j++) if (c[i] < c[j]) dp[j] = max(dp[j], dp[i]+1); cout << *max_element(all(dp)) << '\n'; } } }