fork(1) download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int max (int x, int y) {return (x > y) ? x : y;}
  5.  
  6. int count;
  7.  
  8. int lps (char * seq, int i, int j)
  9. {
  10. count += 1;
  11. if (i == j)
  12. return 1;
  13. if (seq[i] == seq[j] && i + 1 == j)
  14. return 2;
  15. if (seq[i] == seq[j])
  16. return lps (seq, i + 1, j - 1) + 2;
  17. return max (lps (seq, i, j - 1), lps(seq, i + 1, j));
  18. }
  19.  
  20. int main ()
  21. {
  22. char seq [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  23. for (int n = 1; n <= 26; n++)
  24. {
  25. count = 0;
  26. printf ("n = %d: answer = %d", n, lps (seq, 0, n - 1));
  27. printf (", count = %d\n", count);
  28. }
  29. return 0;
  30. }
  31.  
Success #stdin #stdout 0.35s 4388KB
stdin
Standard input is empty
stdout
n = 1: answer = 1, count = 1
n = 2: answer = 1, count = 3
n = 3: answer = 1, count = 7
n = 4: answer = 1, count = 15
n = 5: answer = 1, count = 31
n = 6: answer = 1, count = 63
n = 7: answer = 1, count = 127
n = 8: answer = 1, count = 255
n = 9: answer = 1, count = 511
n = 10: answer = 1, count = 1023
n = 11: answer = 1, count = 2047
n = 12: answer = 1, count = 4095
n = 13: answer = 1, count = 8191
n = 14: answer = 1, count = 16383
n = 15: answer = 1, count = 32767
n = 16: answer = 1, count = 65535
n = 17: answer = 1, count = 131071
n = 18: answer = 1, count = 262143
n = 19: answer = 1, count = 524287
n = 20: answer = 1, count = 1048575
n = 21: answer = 1, count = 2097151
n = 22: answer = 1, count = 4194303
n = 23: answer = 1, count = 8388607
n = 24: answer = 1, count = 16777215
n = 25: answer = 1, count = 33554431
n = 26: answer = 1, count = 67108863