fork download
  1. #include<stdio.h>
  2. int D[1212][1212];
  3. int a[1212], b[1212];
  4. int max(int a, int b) { if (a < b)return b; return a;}
  5. int jd(int x) { if (x < 0)return -x; return x; }
  6. int main() {
  7. int n,i,j;
  8. scanf("%d", &n);
  9. for (i = 1; i <= n; i++)scanf("%d", &a[i]);
  10. for (i = 1; i <= n; i++)scanf("%d", &b[i]);
  11. for (i = 1; i <= n; i++) {
  12. for (j = 1; j <= n; j++) {
  13. if (jd(a[i] - b[j]) <= 4) D[i][j] = D[i - 1][j - 1] + 1;
  14. else D[i][j] = max(D[i - 1][j], D[i][j - 1]);
  15. }
  16. }
  17. printf("%d", D[n][n]);
  18. return 0;
  19. }
Success #stdin #stdout 0s 4304KB
stdin
6
1
2
3
4
5
6
6
5
4
3
2
1
stdout
5