Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef pair<int, int> pii;
- typedef pair<int, pii> piii;
- #define x first
- #define y second
- void fastInOut();
- const double EPS = 1e-8;
- const int MOD = 1e9 + 7;
- const int N = 1e3 + 5;
- int n;
- int A[N];
- int dp[N][N];
- bool found;
- int solve2(int num, int cnt)
- {
- if(cnt == 1) {
- found = true;
- return 1;
- }
- int &res = dp[num][cnt];
- if(~res) return res;
- res = 0;
- for(int i=num-1; i>=0; --i) {
- if(A[i] < A[num])
- res = (res % MOD + solve2(i, cnt-1) % MOD) % MOD;
- }
- return res;
- }
- int main()
- {
- //freopen("in.txt", "r", stdin);
- //freopen("out.txt", "w", stdout);
- fastInOut();
- int T; cin >> T;
- while(T--) {
- cin >> n;
- for(int i=0; i<=n; i++) {
- for(int j=0; j<=n; j++)
- dp[i][j] = -1;
- }
- for(int i=0; i<n; i++)
- cin >> A[i];
- found = false;
- for(int i=n; i>=1; i--) {
- int ans = 0;
- for(int j=0; j<n; j++)
- ans = (ans % MOD + solve2(j, i) % MOD) % MOD;
- if(found) {
- cout << i << " " << ans << "\n";
- break;
- }
- }
- }
- return 0;
- }
- void fastInOut(){
- ios_base::sync_with_stdio(0);
- cin.tie(NULL), cout.tie(NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement