fork(1) download
  1. #include<stdio.h>
  2. #include<algorithm>
  3. using namespace std;
  4. int a[1212], b[1212];
  5. long long D[1212][1212][11];
  6. long long mod = 1e9 + 9;
  7. int main() {
  8. int n, m, k, i, j, p;
  9. scanf("%d%d%d", &n, &m, &k);
  10. for (i = 1; i <= n; i++)scanf("%d", &a[i]);
  11. for (i = 1; i <= m; i++)scanf("%d", &b[i]);
  12. sort(a + 1, a + 1 + n); sort(b + 1, b + m + 1);
  13. for (i = 0; i <= n; i++)for (j = 0; j <= m; j++)D[i][j][0] = 1;
  14. for (i = 1; i <= n; i++)for (j = 1; j <= m; j++) for (p = 1; p <= k; p++) {
  15. D[i][j][p] = ((D[i][j - 1][p] + D[i-1][j][p])%mod - D[i-1][j-1][p]+mod)%mod;
  16. if (a[i] > b[j])D[i][j][p] = (D[i][j][p] + D[i - 1][j - 1][p - 1]) % mod;
  17. }
  18. printf("%lld", D[n][m][k]);
  19. return 0;
  20. }
Success #stdin #stdout 0s 4364KB
stdin
10 10 3
1 2 2 6 6 7 8 9 14 17
1 3 8 10 10 16 16 18 19 19
stdout
382