For this Question: Given of array of N integers, find its number of increasing subsequences modulo (10^9 + 7)
A subsequence of the given array is the array formed after removing zero or more elements from it.
It is said to be increasing when every element is greater than its previous one.First line of input contains T, the number of test cases. Each test case is of two lines.
First line of each test case contains N, the number of elements of the array.
Next line contains N integers Ai, denoting elements of the array

1 <= T <= 50
1 <= N <= 2000
1 <= Ai <= 10^9Output T lines denoting the number of increasing subsequence for every test case. 
Print the answer modulo (10^9 + 7)Sample input 1:
2
5
1 5 2 6 1
3
8 4 2

Sample output 1:
12
3

Explanation:
All increasing subsequence for test 1 are:
{1}
{5}
{2}
{6}
{1}
{1, 5}
{1, 2}
{1. 6}
{2, 6}
{5, 6}
{1, 5, 6}
{1, 2, 6}, I have written this Solution Code: #include "bits/stdc++.h"
using namespace std;
 
#define int long long int
#define ld long double
#define pi pair<int, int>
#define pb push_back
#define fi first
#define se second
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#ifndef LOCAL
#define endl '\n'
#endif
 
const int N = 2e3+ 5;
const int mod = 1e9 + 7;
const int inf = 1e18 + 9;

int a[N], dp[N];

void solve(){
	int n;	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> a[i];
		dp[i] = 0;
	}
	dp[0] = 1;
	int ans = 0;
	for(int i = 1; i <= n; i++){
		for(int j = 0; j < i; j++){
			if(a[i] > a[j])
				(dp[i] += dp[j]) %= mod;
		}
		(ans += dp[i]) %= mod;
	}
	cout << ans << endl;
}

void testcases(){
	int tt = 1; 
	cin >> tt;
	while(tt--){
		solve();
	}
}

signed main() {
	IOS;
		clock_t start = clock();
	
	testcases();

	cerr << (double)(clock() - start)*1000/CLOCKS_PER_SEC << " ms" << endl;
	return 0;
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?