Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- int n;
- int arr[2222];
- int dp[2222];
- int recursion(int prev_index) {
- if(dp[prev_index] != -1) {
- return dp[prev_index];
- }
- int result = 0;
- for(int i = prev_index + 1; i < n; i++) {
- if(arr[prev_index] >= arr[i] && arr[prev_index] % arr[i] == 0) {
- int tmp = recursion(i) + 1;
- if(tmp > result) {
- result = tmp;
- }
- }
- }
- dp[prev_index] = result;
- return result;
- }
- int main() {
- scanf("%d", &n);
- for(int i = 0; i < n; i++) {
- scanf("%d", &arr[i]);
- dp[i] = -1;
- }
- for(int i = 0; i < n; i++) {
- for(int j = i + 1; j < n; j++) {
- if(arr[i] < arr[j]) {
- int tmp = arr[i];
- arr[i] = arr[j];
- arr[j] = tmp;
- }
- }
- }
- int result = 0;
- for(int i = 0; i < n; i++) {
- if(result < recursion(i)) {
- result = recursion(i);
- }
- }
- printf("%d", result + 1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement