#include #include #include #include using namespace std; int n, k, S; int niza[1005]; int dp[15][1005][1005]; int rec(int i, int brnacekori, int brnacevki){ if(i==S){ return 0; } if(dp[brnacevki][brnacekori][i]!=-1){ return dp[brnacevki][brnacekori][i]; } int result=0; int topka=0; if(niza[i]==brnacevki){ topka=1; } result=max(result, rec(i+1, brnacekori, brnacevki)+topka); if((brnacevki - 1 >= 0)and(brnacekori> t; while(t--) { cin>>n>>k>>S; for(int i=0; i>niza[i]; niza[i]--; } for(int i=0; i<=n; i++){ for(int j=0; j<=k; j++){ for(int k=0; k<=S; k++){ dp[i][j][k]=-1; } } } int r = rec(0, 0, 0); if(k > 0) { r = max(r, rec(0, 1, 1)); } cout << r << endl; } return 0; }