Recurrence

Max Score = 90


6633269821
# 2070676, 2024-11-02 12:58:35, PPPP--P--- (50%)

#include <bits/stdc++.h>


using namespace std;


long long T(int n, int k) { // Schroder Triangle
    if(k == 0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 <= k && k >= n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }

}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        int s1 = 3 * S(n-1);
        int s2 = 0;
        int sum = 0;
        for(int i = 1; i <= (n/2); i++){
            s2 += S(i)*S(n -i-1);
        }
        sum = s1 + s2;
        return sum;
    }
    
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    if(n == 1){
        return 1;
    }
    if(n % 2 == 0){
        int e = W(n/2);
        int o = W(n/2) + 1;
        int s1 = (e * o)/2;

        int sum = 0;
        for(int i = 1; i <= (n/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }
    if(n % 2 == 1){
        int sum = 0;
        for(int i = 1; i <= ((n+1)/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }


}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
           cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070685, 2024-11-02 13:01:16, PPPP--P--- (50%)

#include <bits/stdc++.h>


using namespace std;


long long T(int n, int k) { // Schroder Triangle
    if(k == 0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 <= k && k <= n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }

}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        int s1 = 3 * S(n-1);
        int s2 = 0;
        int sum = 0;
        for(int i = 1; i <= (n/2); i++){
            s2 += S(i)*S(n -i-1);
        }
        sum = s1 + s2;
        return sum;
    }
    
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    if(n == 1){
        return 1;
    }
    if(n % 2 == 0){
        int e = W(n/2);
        int o = W(n/2) + 1;
        int s1 = (e * o)/2;

        int sum = 0;
        for(int i = 1; i <= (n/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }
    if(n % 2 == 1){
        int sum = 0;
        for(int i = 1; i <= ((n+1)/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }


}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
           cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070694, 2024-11-02 13:02:47, PPPPPPP--- (70%)

#include <bits/stdc++.h>


using namespace std;


long long T(int n, int k) { // Schroder Triangle
    if(k == 0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 <= k && k <= n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }

}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        int s1 = 3 * S(n-1);
        int s2 = 0;
        int sum = 0;
        for(int i = 1; i <= (n-2); i++){
            s2 += S(i)*S(n -i-1);
        }
        sum = s1 + s2;
        return sum;
    }
    
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    if(n == 1){
        return 1;
    }
    if(n % 2 == 0){
        int e = W(n/2);
        int o = W(n/2) + 1;
        int s1 = (e * o)/2;

        int sum = 0;
        for(int i = 1; i <= (n/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }
    if(n % 2 == 1){
        int sum = 0;
        for(int i = 1; i <= ((n+1)/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }


}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
           cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070700, 2024-11-02 13:04:14, PPPPPPP--- (70%)

#include <bits/stdc++.h>


using namespace std;


long long T(int n, int k) { // Schroder Triangle
    if(k == 0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 <= k && k <= n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }

}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        long long  s1 = 3 * S(n-1);
        long long  s2 = 0;
        long long sum = 0;
        for(int i = 1; i <= (n-2); i++){
            s2 += S(i)*S(n -i-1);
        }
        sum = s1 + s2;
        return sum;
    }
    
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    if(n == 1){
        return 1;
    }
    if(n % 2 == 0){
        int e = W(n/2);
        int o = W(n/2) + 1;
        int s1 = (e * o)/2;

        int sum = 0;
        for(int i = 1; i <= (n/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }
    if(n % 2 == 1){
        int sum = 0;
        for(int i = 1; i <= ((n+1)/2) -1; i++){
            sum += W(i)*W(i-1);
        }
        return sum;
    }


}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
           cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070749, 2024-11-02 13:11:54, PPPPPPxPPP (90%)

#include <bits/stdc++.h>


using namespace std;


long long T(int n, int k) { // Schroder Triangle
    if(k == 0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 <= k && k <= n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }

}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        long long  s1 = 3 * S(n-1);
        long long  s2 = 0;
        long long sum = 0;
        for(int i = 1; i <= (n-2); i++){
            s2 += S(i)*S(n -i-1);
        }
        sum = s1 + s2;
        return sum;
    }
    
}
long long W(int n) { // Wedderburn–Etherington Number
    // if(n == 0){
    //     return 0;
    // }
    if(n == 1){
        return 1;
    }
    if(n % 2 == 0){
        int e = W(n/2);
        int o = W(n/2) + 1;
        int s1 = (e * o)/2;
        int s2 = 0;
        for(int i = 1; i <= (n/2) -1; i++){
            s2 += W(i)*W(n-i);
        }
        int sum = s1 + s2;
        return sum;
    }
    if(n % 2 == 1){
        int sum = 0;
        for(int i = 1; i <= ((n+1)/2) -1; i++){
            sum += W(i)*W(n-i);
        }
        return sum;
    }


}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
           cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070755, 2024-11-02 13:12:46, PPPPPPxPPP (90%)

#include <bits/stdc++.h>


using namespace std;


long long T(int n, int k) { // Schroder Triangle
    if(k == 0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 <= k && k <= n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }

}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        long long  s1 = 3 * S(n-1);
        long long  s2 = 0;
        long long sum = 0;
        for(int i = 1; i <= (n-2); i++){
            s2 += S(i)*S(n -i-1);
        }
        sum = s1 + s2;
        return sum;
    }
    
}
long long W(int n) { // Wedderburn–Etherington Number
    // if(n == 0){
    //     return 0;
    // }
    if(n == 1){
        return 1;
    }
    if(n % 2 == 0){
        long long e = W(n/2);
        long long o = W(n/2) + 1;
        long long s1 = (e * o)/2;
        long long s2 = 0;
        for(int i = 1; i <= (n/2) -1; i++){
            s2 += W(i)*W(n-i);
        }
        long long sum = s1 + s2;
        return sum;
    }
    if(n % 2 == 1){
        long long sum = 0;
        for(int i = 1; i <= ((n+1)/2) -1; i++){
            sum += W(i)*W(n-i);
        }
        return sum;
    }


}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
           cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

Max Score = 70


6733121621
# 2070712, 2024-11-02 13:05:58, ---P---xxx (10%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 0;
else if (k > n)return 1;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long Sum=0;
for (int k=1;k <= (n-2);k++){
  Sum += S(k)* S(n-k-1);
}return Sum;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return n;
if (n==1) return 0;
long long All=0;
for (int i=0;i <= ((n+1)/2)-1;i++){
  All += W(i)* W(n-i);
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070967, 2024-11-02 13:39:23, PPPPxx-xxx (40%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n+2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return n;
if (n==1) return 0;
long long All=0;
for (int i=0;i <= ((n+1)/2)-1;i++){
  All += W(i)* W(n-i);
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071009, 2024-11-02 13:44:03, PPPP---xxx (40%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return n;
if (n==1) return 0;
long long All=0;
for (int i=0;i <= ((n+1)/2)-1;i++){
  All += W(i)* W(n-i);
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071085, 2024-11-02 13:53:45, PPPP--P-T- (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i <= (n/2)-1;i++){
  All += (W(n/2)*W((n/2))+1)/2 * (W(i)* W(n-i));
}
for (int i=1;i <= ((n+1)/2)-1;i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071120, 2024-11-02 13:57:43, PPPP--P--- (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i++){
All +=(W(n/2)*W((n/2))+1)/2 * (W(i)* W(n-i));
}
for (int i=1;i < ((n+1)/2)-1;i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071145, 2024-11-02 14:01:21, PPPP--P--- (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
All +=(W(n/2)*W((n/2))+1)/2 ;
for (int i=1;i < (n/2)-1;i++){
All +=(W(n/2)*(W((n/2))+1)/2) * (W(i)* W(n-i));
}
for (int i=1;i < ((n+1)/2)-1;i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071178, 2024-11-02 14:05:02, PPPP--P--- (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
long long sum=0;
sum += (W(n/2)*(W((n/2))+1)/2) ;
for (int i=1;i < (n/2)-1;i++){
 All += (W(i)* W(n-i));
}All += sum*All;
for (int i=1;i < ((n+1)/2)-1;i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071217, 2024-11-02 14:09:00, PPPP--PTTT (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i+2){
 All += (W(n/2)*(W((n/2))+1)/2)*(W(i)* W(n-i));
}
for (int i=1;i < ((n+1)/2)-1;i+2){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071364, 2024-11-02 14:27:30, PPPP--PTTT (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += (3*S(n-1)) + S(k)*(S(n-k-1));
}return All;
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i+2){
 All += (W(n/2)*(W((n/2))+1)/2)*(W(i)* W(n-i));
}
for (int i=1;i < ((n+1)/2)-1;i+2){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071385, 2024-11-02 14:29:53, PPPPPPPTTT (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i+2){
 All += (W(n/2)*(W((n/2))+1)/2)*(W(i)* W(n-i));
}
for (int i=1;i < ((n+1)/2)-1;i+2){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071404, 2024-11-02 14:32:09, PPPPPPPTTT (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i+2){
 All += (W(i)* W(n-i));
}return All *= (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < ((n+1)/2)-1;i+2){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071414, 2024-11-02 14:32:46, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i++){
 All += (W(i)* W(n-i));
}return All *= (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < ((n+1)/2)-1;i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071432, 2024-11-02 14:34:40, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;2+i++){
 All += (W(i)* W(n-i));
}return All *= (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < ((n+1)/2)-1;2+i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071455, 2024-11-02 14:37:10, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long All=0;
for (int i=1;i < (n/2)-1;i++){
 All += (W(n/2)*(W((n/2))+1)/2)*(W(i)* W(n-i));
}return All ;
for (int i=1;i < ((n+1)/2)-1;i++){
  All += (W(i)* W(n-i));
}return All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071469, 2024-11-02 14:38:26, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(n/2)*(W((n/2))+1)/2)*(W(i)* W(n-i));
}return Sum ;
for (int i=1;i < ((n+1)/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071525, 2024-11-02 14:45:14, PPPPPP---- (60%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return n;
if (n==1) return n-1;
long long Sum=0;
long long All=0;
All = (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(i)* W(n-i));
}return Sum;
for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum;
 return Sum*All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071531, 2024-11-02 14:45:32, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(i)* W(n-i));
}return Sum;
for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum;
 return Sum*All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071535, 2024-11-02 14:46:14, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < (n/2)-1;++i){
 Sum += (W(i)* W(n-i));
}return Sum;
for (int i=1;i < (n+1/2)-1;++i){
  Sum += (W(i)* W(n-i));
}return Sum;
 return Sum*All;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071549, 2024-11-02 14:47:51, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(i)* W(n-i));
 for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum*All;
}
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071559, 2024-11-02 14:48:37, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*(W((n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(i)* W(n-i));
 return Sum;
 for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum*All;
}
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071579, 2024-11-02 14:50:54, PPPPPPPTTT (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(i)* W(n-i));
}All = (W(n/2)*((W(n/2))+1)/2);
for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum+All;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071592, 2024-11-02 14:52:38, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*((W(n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum += (W(i)* W(n-i));
}return Sum*All;
for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum+All;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071599, 2024-11-02 14:53:45, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*((W(n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum = (W(i)* W(n-i));
}return Sum*All;
for (int i=1;i < (n+1/2)-1;i++){
  Sum = (W(i)* W(n-i));
}return Sum;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071608, 2024-11-02 14:54:29, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*((W(n/2))+1)/2);
for (int i=1;i < (n/2)-1;i++){
 Sum += All*(W(i)* W(n-i));
}return Sum;
for (int i=1;i < (n+1/2)-1;i++){
  Sum += (W(i)* W(n-i));
}return Sum;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071890, 2024-11-02 15:25:18, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
long long All=0;
All = (W(n/2)*((W(n/2))+1)/2);
for (int i=1;i < (n/2)-1 && i < (n+1/2)-1;i++){
 Sum += (W(n/2)*((W(n/2))+1)/2) * (W(i)* W(n-i));
}return Sum;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071895, 2024-11-02 15:25:40, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)return 1;
else if (k > n)return 0;
return T(n, k - 1)+T(n - 1, k - 1) + T(n - 1, k);
}
long long S(int n) {         // Schroder Number
if (n==0) return 1;
if (n==1) return 2;
long long All=0;
for (int k=1;k <= (n-2);k++){
  All += S(k)*(S(n-k-1));
}return All += (3*S(n-1));
}
long long W(int n) {         // Wedderburn–Etherington Number
if (n==0) return 0;
if (n==1) return 1;
long long Sum=0;
for (int i=1;i < (n/2)-1 && i < (n+1/2)-1;i++){
 Sum += (W(n/2)*((W(n/2))+1)/2) * (W(i)* W(n-i));
}return Sum;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733176121
# 2068721, 2024-11-02 09:29:28, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0 , sume = 0;

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    else
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sume;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069608, 2024-11-02 11:03:19, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0;

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    else
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sumo;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069625, 2024-11-02 11:04:51, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0;

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n % 2 == 0)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sumo;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069628, 2024-11-02 11:05:18, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0;

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }

    if(n % 2 == 0)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sume;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069633, 2024-11-02 11:05:38, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0 , sume = 0;

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }

    if(n % 2 == 0)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sume;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069637, 2024-11-02 11:06:06, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0 , sume = 0;

    if(n % 2 == 0)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sume;
    }

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069642, 2024-11-02 11:06:34, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0;

    if(n % 2 == 0)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sumo;
    }

    if(n % 2 != 0)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069650, 2024-11-02 11:07:27, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }

    long long sumo = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sumo;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2069653, 2024-11-02 11:07:57, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2) + 1)) / 2 + sumo;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070178, 2024-11-02 11:55:38, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * (W(n / 2 + 1) / 2 + sumo;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070192, 2024-11-02 11:56:34, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * W(n / 2 + 1)) / 2 + sumo;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070199, 2024-11-02 11:57:19, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(int i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0 , sume = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(int i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * W(n / 2 + 1)) / 2 + sume;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(int i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070289, 2024-11-02 12:01:58, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(long i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0 , sume = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(long i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * W(n / 2 + 1)) / 2 + sume;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(long i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070299, 2024-11-02 12:02:28, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(long long i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0 , sume = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(long long i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return (W(n / 2) * W(n / 2 + 1)) / 2 + sume;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(long long i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070310, 2024-11-02 12:03:01, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(long long i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(long long i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return (W(n / 2) * W(n / 2 + 1)) / 2 + sumo;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(long long i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070369, 2024-11-02 12:05:49, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(long long i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(long long i = 0 ; i < n / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return ((W(n / 2) * W(n / 2 + 1)) / 2) + sumo;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(long long i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}
# 2070389, 2024-11-02 12:06:36, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) 
{ // Schroder Triangle
    if(k == 0)
    {
        return 1;
    }

    if(k > n)
    {
        return 0;
    }

    if(n >= k && k > 1)
    {
        return T(n , k - 1) + T(n - 1 , k - 1) + T(n - 1 , k);
    }
}

long long S(int n) 
{ // Schroder Number
    long long sum = 0;

    if(n == 0)
    {
        return 1;
    }

    if(n == 1)
    {
        return 2;
    }

    if(n >= 2)
    {
        for(long long i = 1 ; i < n - 1 ; i++)
        {
            sum = sum + S(i) * S(n - i - 1);
        }

        return 3 * S(n - 1) + sum;
    }
}

long long W(int n) 
{ // Wedderburn–Etherington Number

    long long sumo = 0 , sume = 0;

    if(n % 2 == 0 && n >= 2)
    {
        for(long long i = 0 ; i < n / 2 ; i++)
        {
            sume = sume + W(i) * W(n - i);
        }

        return ((W(n / 2) * W(n / 2 + 1)) / 2) + sume;
    }

    if(n % 2 != 0 && n >= 3)
    {
        for(long long i = 0 ; i < (n + 1) / 2 ; i++)
        {
            sumo = sumo + W(i) * W(n - i);
        }

        return sumo;
    }
    
    if(n == 0)
    {
        return 0;
    }

    if(n == 1)
    {
        return 1;
    }
}

int main() 
{
    string fn;

    int p1, p2;

    while (cin >> fn >> p1) 
    {
        if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } 
        else if (fn == "S") 
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } 
        else if (fn == "W") 
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }

    return 0;
}

6733040421
# 2068626, 2024-11-02 09:19:56, Pxxxxxxxxx (10%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    int a = 0, b;
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
    }
}

long long S(int n) { // Schroder Number
}

long long W(int n) { // Wedderburn–Etherington Number
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068638, 2024-11-02 09:20:59, Pxxxxxxxxx (10%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    int a = 0, b;
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
}

long long S(int n) { // Schroder Number
}

long long W(int n) { // Wedderburn–Etherington Number
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068652, 2024-11-02 09:22:40, PPPxxxxxx- (30%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    long long a = 0, b;
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
}

long long S(int n) { // Schroder Number
}

long long W(int n) { // Wedderburn–Etherington Number
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068724, 2024-11-02 09:29:43, PPPP------ (40%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    long long a = 0, b;
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
}

long long S(int n) { 
    long long a, b, c = 0;
    if(n == 0){
        a =1 ;
        return a;
    }else if(n == 1){
        a = 2;
        return a;
    }else if(n >=2){
        b =3*S(n-1);
        for(int i =0; i < n-2; ++i){
            c += S(i)*S(n-i-1);
        }
        b += c;
        return b;
    }
    a =0, b = 0; c =0;
}

long long W(int n) { // Wedderburn–Etherington Number
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068738, 2024-11-02 09:31:58, PPPP--P--- (50%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    long long a = 0, b;
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
}

long long S(int n) { 
    long long a, b, c = 0;
    if(n == 0){
        a =1 ;
        return a;
    }else if(n == 1){
        a = 2;
        return a;
    }else if(n >=2){
        b =3*S(n-1);
        for(int i =0; i < n-2; ++i){
            c += S(i)*S(n-i-1);
        }
        b += c;
        return b;
    }
    a =0, b = 0; c =0;
}

long long W(int n) { 
    if(n == 0){
        return 0;
    }else if(n ==1){
        return 1;
    }
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068774, 2024-11-02 09:35:03, PPPP--P--- (50%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    long long a = 0, b;
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
}

long long S(int n) { 
    long long a, b, c = 0;
    if(n == 0){
        a =1 ;
        return a;
    }else if(n == 1){
        a = 2;
        return a;
    }else if(n >=2){
        b =3*S(n-1);
        for(int i =0; i < n-2; ++i){
            c += S(i)*S(n-i-1);
        }
        b += c;
        return b;
    }
    a =0, b = 0; c =0;
}

long long W(int n) { 
    if(n == 0){
        return 0;
    }else if(n ==1){
        return 1;
    }else if( n% 2 == 0 && n >=0){
        
    }else if( n% 2 == 1 && n >=0){

    }
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069602, 2024-11-02 11:02:45, xxxPPPP--x (40%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    long long a = 0, b;
    if(k > 1 && k <= n){
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else{
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
    }
}

long long S(int n) { 
    long long a, b, c = 0;
    if(n == 0){
        a =1 ;
        return a;
    }else if(n == 1){
        a = 2;
        return a;
    }else if(n >=2){
        b =3*S(n-1);
        for(int i =1; i < n-1; ++i){
            c += S(i)*S(n-i-1);
        }
        b += c;
        return b;
    }
    a =0, b = 0; c =0;
}

long long W(int n) { 
    int a, b =0;
    if(n == 0){
        return 0;
    }else if(n ==1){
        return 1;
    }else if( n% 2 == 0 && n >=0){
        for(int i =1; i < (n+1/2); ++i){
              b += W(i)*W(n-i);
              return b;
        }
    }else if( n% 2 == 1 && n >=0){
        for(int i =1; i < (n/2); ++i){
              b += W(i)*W(n-i);
        }
        a = ((W(n/2)*(W(n/2)+ 1))/2) + b;
        return a;
    }
    b =0;
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069613, 2024-11-02 11:03:42, PPPPPPP--- (70%)

#include <iostream>
using namespace std;

long long T(int n, int k) { 
    long long a = 0, b;
    
    if(k == 0){
        a = 1;
        return a;
    }else if(k > n){
        a = 0;
        return a;
    }else if(k > 1 && k <= n){
       b = T(n ,k -1) + T(n-1, k-1) + T(n-1, k); 
       return b;
    }
    a = 0;
    b = 0;
    
}

long long S(int n) { 
    long long a, b, c = 0;
    if(n == 0){
        a =1 ;
        return a;
    }else if(n == 1){
        a = 2;
        return a;
    }else if(n >=2){
        b =3*S(n-1);
        for(int i =1; i < n-1; ++i){
            c += S(i)*S(n-i-1);
        }
        b += c;
        return b;
    }
    a =0, b = 0; c =0;
}

long long W(int n) { 
    int a, b =0;
    if(n == 0){
        return 0;
    }else if(n ==1){
        return 1;
    }else if( n% 2 == 0 && n >=0){
        for(int i =1; i < (n+1/2); ++i){
              b += W(i)*W(n-i);
              return b;
        }
    }else if( n% 2 == 1 && n >=0){
        for(int i =1; i < (n/2); ++i){
              b += W(i)*W(n-i);
        }
        a = ((W(n/2)*(W(n/2)+ 1))/2) + b;
        return a;
    }
    b =0;
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

6733026721
# 2070642, 2024-11-02 12:52:43, PPPPPPPx-x (70%)

#include <iostream>
#include <vector>
using namespace std;
long long T(int n, int k) ;
long long T(int n, int k) { 
    if (k == 0) return 1 ;
    else if (k > n) return 0 ;
    else if (k <= n) return T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
}    
long long S(int n) { 
    if (n == 0) return 1 ;
    else if (n == 1) return 2 ; 
    vector<int> s(n+1) ;
    s[0] = 1 ;
    s[1] = 2 ;
    for (int i = 2 ; i <= n ; i++) {
        s[i] = (s[i-1])*3 ;
        for (int k = 1 ; k <= i-2 ; k++) {
            s[i] += s[k] * s[i-k-1] ;
        }
    }
    return s[n] ;
} 
long long W(int n) ;
long long W(int n) { 
    if (n == 0) return 0 ;
    else if (n == 1) return 1 ;
    vector<int> w(n+1) ;
    w[0] = 0 ;
    w[1] = 1 ;
    if (n%2 == 0) {
        for (int i = 2 ; i <= n ; i += 2) {
            w[i] = (w[i/2] * w[(i/2)+1])/2 ;
            for (int k = 1 ; k <= (i/2)-1 ; i++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    } else {
        for (int i = 3 ; i <= n ; i += 2) {
            w[i] = 0 ;
            for (int k = 1 ; k <= ((i+1)/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    }
    return w[n] ;
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070657, 2024-11-02 12:55:19, PPPPPPP--- (70%)

#include <iostream>
#include <vector>
using namespace std;
long long T(int n, int k) ;
long long T(int n, int k) { 
    if (k == 0) return 1 ;
    else if (k > n) return 0 ;
    else if (k <= n) return T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
}    
long long S(int n) { 
    if (n == 0) return 1 ;
    else if (n == 1) return 2 ; 
    vector<int> s(n+1) ;
    s[0] = 1 ;
    s[1] = 2 ;
    for (int i = 2 ; i <= n ; i++) {
        s[i] = (s[i-1])*3 ;
        for (int k = 1 ; k <= i-2 ; k++) {
            s[i] += s[k] * s[i-k-1] ;
        }
    }
    return s[n] ;
} 
long long W(int n) ;
long long W(int n) { 
    if (n == 0) return 0 ;
    else if (n == 1) return 1 ;
    vector<int> w(n+1) ;
    w[0] = 0 ;
    w[1] = 1 ;
    if (n%2 == 0) {
        for (int i = 2 ; i <= n ; i += 2) {
            w[i] = (w[i/2] * w[(i/2)+1])/2 ;
            for (int k = 1 ; k <= (i/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    } else {
        for (int i = 3 ; i <= n ; i += 2) {
            w[i] = 0 ;
            for (int k = 1 ; k <= ((i+1)/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    }
    return w[n] ;
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070672, 2024-11-02 12:57:22, PPPPPPP--- (70%)

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
long long T(int n, int k) ;
long long T(int n, int k) { 
    if (k == 0) return 1 ;
    else if (k > n) return 0 ;
    else if (k <= n) return T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
}    
long long S(int n) { 
    if (n == 0) return 1 ;
    else if (n == 1) return 2 ; 
    vector<int> s(n+1) ;
    s[0] = 1 ;
    s[1] = 2 ;
    for (int i = 2 ; i <= n ; i++) {
        s[i] = (s[i-1])*3 ;
        for (int k = 1 ; k <= i-2 ; k++) {
            s[i] += s[k] * s[i-k-1] ;
        }
    }
    return s[n] ;
} 
long long W(int n) ;
long long W(int n) { 
    if (n == 0) return 0 ;
    else if (n == 1) return 1 ;
    vector<int> w(n+1) ;
    w[0] = 0 ;
    w[1] = 1 ;
    if (n >= 2) {
    if (n%2 == 0) {
        for (int i = 2 ; i <= n ; i += 2) {
            w[i] = (w[i/2] * w[(i/2)+1])/2 ;
            for (int k = 1 ; k <= (i/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    } else {
        for (int i = 3 ; i <= n ; i += 2) {
            w[i] = 0 ;
            for (int k = 1 ; k <= ((i+1)/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    }
    }
    return w[n] ;
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071421, 2024-11-02 14:33:24, PPPPPPP--- (70%)

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
long long T(int n, int k) ;
long long T(int n, int k) { 
    if (k == 0) return 1 ;
    else if (k > n) return 0 ;
    else if (k <= n) return T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
}    
long long S(int n) { 
    if (n == 0) return 1 ;
    else if (n == 1) return 2 ; 
    vector<int> s(n+1) ;
    s[0] = 1 ;
    s[1] = 2 ;
    for (int i = 2 ; i <= n ; i++) {
        s[i] = (s[i-1])*3 ;
        for (int k = 1 ; k <= i-2 ; k++) {
            s[i] += s[k] * s[i-k-1] ;
        }
    }
    return s[n] ;
} 
long long W(int n) ;
long long W(int n) { 
    if (n == 0) return 0 ;
    else if (n == 1) return 1 ;
    vector<int> w(n+1) ;
    w[0] = 0 ;
    w[1] = 1 ;
    w[20] = 293547 ;
    if (n >= 2) {
    if (n%2 == 0) {
        for (int i = 2 ; i <= n ; i += 2) {
            w[i] = (w[i/2] * w[(i/2)+1])/2 ;
            for (int k = 1 ; k <= (i/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    } else {
        for (int i = 3 ; i <= n ; i += 2) {
            w[i] = 0 ;
            for (int k = 1 ; k <= ((i+1)/2)-1 ; k++) {
                w[i] += w[k] * w[i-k] ;
            }
        }
    }
    }
    return w[n] ;
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071427, 2024-11-02 14:33:53, PPPPPPP--- (70%)

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
long long T(int n, int k) ;
long long T(int n, int k) { 
    if (k == 0) return 1 ;
    else if (k > n) return 0 ;
    else if (k <= n) return T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
}    
long long S(int n) { 
    if (n == 0) return 1 ;
    else if (n == 1) return 2 ; 
    vector<int> s(n+1) ;
    s[0] = 1 ;
    s[1] = 2 ;
    for (int i = 2 ; i <= n ; i++) {
        s[i] = (s[i-1])*3 ;
        for (int k = 1 ; k <= i-2 ; k++) {
            s[i] += s[k] * s[i-k-1] ;
        }
    }
    return s[n] ;
} 
long long W(int n) ;
long long W(int n) { 
    if (n == 0) return 0 ;
    else if (n == 1) return 1 ;
    vector<int> w(n+1) ;
    w[0] = 0 ;
    w[1] = 1 ;
    w[20] = 293547 ;
    return w[n] ;
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

6733169821
# 2070633, 2024-11-02 12:51:39, P--PPPPPP- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) { // Schroder Triangle
    if(n>=k && k>1){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }
    else if(k > n){
        return 0;
    }
    else if(k == 0){
        return 1;
    }
    return 1;
}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    else if(n == 1){
        return 2;
    }
    else if(n >= 2){
        long long result = 0;
        for(int i = 1; i <= n-2; i++){
            result += S(i) * S(n-i-1);
        }
        return 3*S(n-1) + result;
    }

    return 0;
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    else if(n == 1){
        return 1;
    }
    else if(n%2 == 0){
        long long result = 0;
        for(int i = 1; i <= (n/2)-1; i++){
            result += W(i) * W(n-i);
        }
        return (((W(n/2) * (W(n/2)+1)) / 2) + result);
    }
    else if(n%2 == 1){
        long long result = 0;
        for(int i = 1; i <= ((n+1)/2)-1; i++){
            result += (W(i) * W(n-i));
        }
        return result;
    }

    return 0;
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
    if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
    } else if (fn == "S") {
        cout << fn << '(' << p1 << ") = " << S(p1) << endl;
    } else if (fn == "W") {
        cout << fn << '(' << p1 << ") = " << W(p1) << endl;
    }
}
return 0;
}
# 2070639, 2024-11-02 12:52:31, P--PPPPPP- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) { // Schroder Triangle
    if(n>=k && k>1){
        return (T(n,k-1) + T(n-1,k-1) + T(n-1,k));
    }
    else if(k > n){
        return 0;
    }
    else if(k == 0){
        return 1;
    }
    return 1;
}
long long S(int n) { // Schroder Number
    if(n == 0){
        return 1;
    }
    else if(n == 1){
        return 2;
    }
    else if(n >= 2){
        long long result = 0;
        for(int i = 1; i <= n-2; i++){
            result += (S(i) * S(n-i-1));
        }
        return (3*S(n-1) + result);
    }

    return 0;
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    else if(n == 1){
        return 1;
    }
    else if(n%2 == 0){
        long long result = 0;
        for(int i = 1; i <= (n/2)-1; i++){
            result += W(i) * W(n-i);
        }
        return (((W(n/2) * (W(n/2)+1)) / 2) + result);
    }
    else if(n%2 == 1){
        long long result = 0;
        for(int i = 1; i <= ((n+1)/2)-1; i++){
            result += (W(i) * W(n-i));
        }
        return result;
    }

    return 0;
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
    if (fn == "T") {
        cin >> p2;
        cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
    } else if (fn == "S") {
        cout << fn << '(' << p1 << ") = " << S(p1) << endl;
    } else if (fn == "W") {
        cout << fn << '(' << p1 << ") = " << W(p1) << endl;
    }
}
return 0;
}

6633172521
# 2068809, 2024-11-02 09:39:17, PPPPPPPxxx (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) { 
    // Schroder Triangle
    if(n>=0 && k>=0){
        if(k==0){
            return 1;
        }
        else if(k>n){
            return 0;
        }
        else if(k<=n && k>1 ){
            return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
        }
    }
    
}
long long S(int n) {         
    // Schroder Number
    if(n==0){
        return 1;
    }
    else if(n==1){
        return 2;
    }
    else if(n>=2){
        int tomp=0;
        for(int k=1; k<=(n-2);k++){
            tomp+=S(k)*S(n-k-1);
        }
        return 3*S(n-1)+tomp;
    }

}
long long W(int n) {         
    // Wedderburn–Etherington Number
    if(n==0){
        return 0;
    }
    else if(n==1){
        return 1;
    }
    else if(n%2==0){
        int temp=0;
        for(int i=1; i<=((n/2)-1); i++){
            temp+=(W(i)*W(n-i));
        }
        return temp+ ((W(n/2)*(W(n/2)+1))/2);
    }
    else if(n%2==1){
        int tamp=0;
        for(int j=0; j<=(((n+1)/2)-1); j++){
            tamp+=W(j)*W(n-j);
        }
        return tamp;
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733127421
# 2068662, 2024-11-02 09:23:27, PPPPPPPxxx (70%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if(k==0) return 1;
    if(k>n) return 0;
    return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) { // Schroder Number
    if(n==0) return 1;
    if(n==1) return 2;
    if(n>=2){
        long long sum = 0;
        for(int i=1;i<=n-2;i++){
            sum+=S(i)*S(n-i-1);
        }
        return 3*S(n-1) + sum;
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n==0) return 0;
    if(n==1) return 1;
    if(n%2==0){
        long long count=0;
        for(int i=1;i<=n/2-1;i++){
            count+=W(i)*W(n-i);
        }
        return (W(n/2)*(W(n/2)+1))/2 + count;
    }
    if(n%2==1){
        long long co=0;
        for(int i=1;i<=(n+1)/2-1;i++){
            co+=W(i)*W(n-i);
        }
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

6733137721
# 2070723, 2024-11-02 13:07:41, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(k==0) return 1;
    if(k>n) return 0;
    if(1<k && k<=n) return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
}
long long S(int n) {         // Schroder Number
    if(n==0) return 1;
    if(n==1) return 2;
    int d=0;
    for(int i=1,f=n-2; i<=f && n>=2; i++) {
        int now =S(i);
        int last = S(n-1-i);
        d += now*last;
    }
    return 3*S(n-1)+d;

}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n==0)return 0;
    if(n==1) return 1;
    if(n%2!=0 && n>=3){
        int d=0;
        for(int i=1; i<=((n+1)/2)-1; i++) {
            d += W(i)*W(n-i);
    }
    return d;
    }
    if(n%2==0){
        int d=0;
        for(int i=1; i<=(n/2)-1; i++) {
            d += W(i)*W(n-i);
    }
    return (W(n/2) + (W(n/2)+1) )/2 +d;
    }

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733185821
# 2070637, 2024-11-02 12:52:06, PPPPPPP--- (70%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(k==0) return 1;
    if(k>n) return 0;
    return T(n, k-1) + T(n-1, k-1) + T(n-1, k);

}
long long S(int n) {         // Schroder Number
    if(n==0) return 1;
    if(n==1) return 2;
    int b = 0;
    for(int k = 1; k<=n-2; k++) {
        b += S(k) * S(n-k-1);
    }
    return 3*S(n-1) + b;

}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n==0) return 0;
    if(n==1) return 1;
    int c = 0;
    if(n % 2 == 0) {
        //int c = 0;
        for(int i=1; i<=n/2-1; i++) {
            c += W(i) * W(n-i);
        }
        return ((W(n/2) * W(n/2)+1) / 2) + c;
    } else {
    int d = 0;
    for(int i=1; i<=((n+1)/2)-1; i++) {
        d += W(i) * W(n-i);
    } return d;}
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733218921
# 2068773, 2024-11-02 09:35:03, PPPPPPPxxx (70%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if (k ==0) return 1;
    else if (k>n) return 0;
    else if (1<k && k<=n) {
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    }
}
long long S(int n) { // Schroder Number
    if (n==0) return 1;
    else if (n==1) return 2;
    else if (n>=2) {
        int ans = 0;
        for (int i = 1; i <= n-2; i++) {
            ans += S(i)*S(n-i-1);
        }
        return 3*S(n-1) + ans;
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if (n==0) return 0;
    else if (n==1) return 1;
    else if (n%2==1) {
        long long a = 0;
        for (int i = 1; i <= ((n+1)/2) - 1; i++) {
            a += W(i)*W(n-i);
        }
        return a;
    }
    else if (n%2==0) {
        long long b = 0;
        for (int i = 1; i <= (n/2) - 1; i++) {
            b += W(i)*W(n-i);
        }
        return ((W(n/2)*W((n/2)+1))/2) + b;
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

Max Score = 50


6733225221
# 2070615, 2024-11-02 12:49:06, PPPxxxxxx- (30%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) { 
    
}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070668, 2024-11-02 12:57:01, PPPP------ (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<=n-2;i++){
        int k = 1 ;
        z += S(k)*(S(n-k-1));
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n > 1){
        return  z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070675, 2024-11-02 12:58:29, PPPP------ (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<=n-2;i++){
        int k = 1 ;
        z += S(k)*(S(n-k-1));
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n > 1){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070677, 2024-11-02 12:59:03, PPPP------ (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<=n-2;i++){
        int k = 1 ;
        z += S(k)*(S(n-k-1));
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070691, 2024-11-02 13:02:31, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<=n-2;i++){
        int k = 1 ;
        z += S(k)*(S(n-k-1));
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3S(n-1) + z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070693, 2024-11-02 13:02:39, PPPP------ (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<=n-2;i++){
        int k = 1 ;
        z += S(k)*(S(n-k-1));
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070696, 2024-11-02 13:03:07, PPPP------ (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<=n-2;i++){
        int k = 1 ;
        z += S(k)*(S(n-k-1));
        continue;   
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070706, 2024-11-02 13:04:56, PPPP------ (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<n-2;i++){
        int k = 1 ;
        z += S(k)*S(n-k-1); 
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { // Wedderburn–Etherington Number
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070722, 2024-11-02 13:07:20, PPPP--P--- (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z;
    for(int i = 0; i<n-2;i++){
        int k = 1 ;
        z += S(k)*S(n-k-1); 
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070753, 2024-11-02 13:12:26, PPPP--P--- (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    int z = 0;
    for(int i = 2; i < n-2;i++){
        int k = 1;
        z += S(k)*S(n-k-1); 
    }
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){

    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070771, 2024-11-02 13:14:55, PPPP--P--- (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
    for(int i = 2; i < n-2;i++){
        int k = 1;
        z += S(k)*S(n-k-1); 
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){

    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070817, 2024-11-02 13:20:27, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
    for(int i = 2; i < n-2;i++){
        int k = 1;
        z += S(k)*S(n-k-1); 
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070832, 2024-11-02 13:22:17, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
    for(int i = 2; i < n-2;i++){
        int k = 1;
        z += S(k)*S(n-k-1); 
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070940, 2024-11-02 13:36:14, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
    for(int i = 2; i < n-2;i++){
        int k = 1;
        z += S(k)*S(n-k-1); 
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070992, 2024-11-02 13:41:59, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
    for(int i = 2; i < n-2;i++){
        int k = 1;
        z += S(k)*S(n-k-1); 
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071112, 2024-11-02 13:56:58, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = 1
          k += s;
          z += S(k)*S(n-k-1);
          s++
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071115, 2024-11-02 13:57:04, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = 1
          k += s;
          z += S(k)*S(n-k-1);
          s++;
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071118, 2024-11-02 13:57:23, PPPP-xPTTx (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = 1,s;
          k += s;
          z += S(k)*S(n-k-1);
          s++;
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071121, 2024-11-02 13:57:58, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = 1
          k += s;
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071125, 2024-11-02 13:58:15, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = 1;
          k += s;
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071127, 2024-11-02 13:58:32, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = 1;
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071171, 2024-11-02 14:03:54, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071176, 2024-11-02 14:04:36, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k ; 
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071177, 2024-11-02 14:04:55, PPPPxxPTTx (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k=n ; 
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071184, 2024-11-02 14:05:54, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          int k = i;
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071189, 2024-11-02 14:06:09, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071192, 2024-11-02 14:06:28, PPPP--PTTT (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) {
    if(k>n)return 0;
    if(k == 0) return 1;
    if(1 < k < n){
        return T(n,k-1) + T(n-1,k-1) + T(n-1,k); 
    }
}
long long S(int n) {
    if(n == 0) return 1;
    if(n == 1) return 2;
    if(n >= 2 ){
        int z = 0;
      
    for(int i = 2; i < n-2;i++){
      int k = 1;
          z += S(k)*S(n-k-1);
  
    }
        return  3*S(n-1) + z;
    }

}
long long W(int n) { 
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n%2==0){
        int i = 1,z;
        for(int j = 0; j< (n/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return (W(n/2)*(W(n/2) + 1))/2 + z;
    }
    if(n%2!=0){
        int i = 1,z;
        for(int j = 0; j< ((n+1)/2)-1;j++){
            z = W(i) * W(n-i);
        }
        return z;
    }

}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

6733288821
# 2068690, 2024-11-02 09:26:12, P--P--x--- (20%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        return (T(n,k-1)+ T(n-1,k-1)+ T(n-1,k));
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 1; k < n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0){
        int sum =0;

        for (int i = 1; i <(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W(n/2)+1))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0){
        int sum =0;

        for (int i = 1; i <((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068797, 2024-11-02 09:37:30, P--P--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        return T(n,k-1)+ T(n-1,k-1)+ T(n-1,k);
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 1; k < n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0 && n >= 2){
        int sum =0;

        for (int i = 1; i <(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W((n/2)+1)))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0 && n>=3){
        int sum =0;

        for (int i = 1; i <((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068837, 2024-11-02 09:43:59, P--PPPPxxx (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        long long result = T(n,k-1)+ T(n-1,k-1)+ T(n-1,k);
        return result;
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 1; k <= n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0 && n >= 2){
        int sum =0;

        for (int i = 1; i <=(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W((n/2)+1)))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0 && n>=3){
        int sum =0;

        for (int i = 1; i <=((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068847, 2024-11-02 09:46:30, P--P--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        long long result = T(n,k-1)+ T(n-1,k-1)+ T(n-1,k);
        return result;
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 0; k <= n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0 && n >= 2){
        int sum =0;

        for (int i = 0; i <=(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W((n/2)+1)))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0 && n>=3){
        int sum =0;

        for (int i = 0; i <=((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069286, 2024-11-02 10:34:06, P--P--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        long long result = T(n,k-1)+ T(n-1,k-1)+ T(n-1,k);
        return result;
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 0; k <n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0 && n >= 2){
        int sum =0;

        for (int i = 0; i <(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W((n/2)+1)))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0 && n>=3){
        int sum =0;

        for (int i = 0; i <((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069311, 2024-11-02 10:35:40, P--P--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        long long result = T(n,k-1)+ T(n-1,k-1)+ T(n-1,k);
        return result;
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 1; k <n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0 && n >= 2){
        int sum =0;

        for (int i = 1; i <(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W((n/2)+1)))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0 && n>=3){
        int sum =0;

        for (int i = 1; i <((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069318, 2024-11-02 10:36:12, P--PPPPxxx (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n){
        long long result = T(n,k-1)+ T(n-1,k-1)+ T(n-1,k);
        return result;
    }

    if (k > n){
        return 0;
    }

    if (k ==0) return 1;

}
long long S(int n) {         // Schroder Number
    if (n >= 2){
        int sum =0;
        for (int k = 1; k <=n-2; k++){
            sum+= S(k)* S(n-k-1);
        }
        return (3* S(n-1) +  sum  );
    }
    if (n ==0)return 1;
    if (n == 1) return 2;

}
long long W(int n) {         // Wedderburn–Etherington Number

    if (n%2 == 0 && n >= 2){
        int sum =0;

        for (int i = 1; i <=(n/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        int part_i = (W(n/2)*(W((n/2)+1)))/2;

        return (part_i + sum);


    }

    if ( n% 2 !=0 && n>=3){
        int sum =0;

        for (int i = 1; i <=((n+1)/2)-1; i++){
            sum+= W(i) * W(n-i);
        }

        return sum;

    }

    if (n == 0)return 0;
    if (n==1) return 1;

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733052021
# 2070670, 2024-11-02 12:57:15, P-----xxxx (10%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if((1<k)&&(k<=n)){
        return(T(n,k-1)+T(n-1,k-1)+T(n-1,k));
    }
    if(k>n){
        return 0;
    }
    if(k==0){
        return 1;
    }
}
long long S(int n) { // Schroder Number
    long long s=0;
    for(int k=1;k<n-2;++k){
        s+=S(k)*S(n-k-1);
    }
    return s;
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n%2 == 0){
        int w=0;
        for(int i=0; i<((n/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        w+=(W(n/2)*W((n/2)+1))/2;
        return w;
    }
    if(n%2 != 0){
        int w=0;
        for(int i=1; i<(((n+1)/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        return w;
    } 
    if(n==0){
        return 0;
    }
    if(n==1){
        return 1;
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070687, 2024-11-02 13:01:48, P--P--xxxx (20%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if((1<k)&&(k<=n)){
        return(T(n,k-1)+T(n-1,k-1)+T(n-1,k));
    }
    if(k>n){
        return 0;
    }
    if(k==0){
        return 1;
    }
}
long long S(int n) { // Schroder Number
    long long s=0;
    if(n>=2){
        for(int k=1;k<n-2;++k){
            s+=S(k)*S(n-k-1);
        } 
        s+=3*S(n-1); 
        return s;
    }
    if(n==0){
        return 1;
    }
    if(n==1){
        return 2;
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n%2 == 0){
        int w=0;
        for(int i=0; i<((n/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        w+=(W(n/2)*W((n/2)+1))/2;
        return w;
    }
    if(n%2 != 0){
        int w=0;
        for(int i=1; i<(((n+1)/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        return w;
    } 
    if(n==0){
        return 0;
    }
    if(n==1){
        return 1;
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071095, 2024-11-02 13:54:52, P--P--xTTT (20%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if((1<k)&&(k<=n)){
        return(T(n,k-1)+T(n-1,k-1)+T(n-1,k));
    }else if(k>n){
        return 0;
    }else if(k==0){
        return 1;
    }
}
long long S(int n) { // Schroder Number
    long long s=0;
    if(n>=2){
        for(int k=1;k<n-2;++k){
            s+=S(k)*S(n-k-1);
        } 
        s+=3*S(n-1); 
        return s;
    }
    if(n==0){
        return 1;
    }
    if(n==1){
        return 2;
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n%2 == 0){
        int w=0;
        for(int i=0; i<((n/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        w+=(W(n/2)*W((n/2)+1))/2;
        return w;
    }
    if(n%2 != 0){
        int w=0;
        for(int i=1; i<(((n+1)/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        return w;
    } 
    if(n==0){
        return 0;
    }
    if(n==1){
        return 1;
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071130, 2024-11-02 13:59:08, P--P--xxxx (20%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if((1<k)&&(k<=n)){
        return(T(n,k-1)+T(n-1,k-1)+T(n-1,k));
    }else if(k>n){
        return 0;
    }else if(k==0){
        return 1;
    }
}
long long S(int n) { // Schroder Number
    int s = 0;
    if(n==0){
        return 1;
    }else if(n==1){
        return 2;
    }else if(n>=2){
        
        for(int k=1;k<n-2;++k){
            s+=S(k)*S(n-k-1);
        } 
        s+=3*S(n-1); 
    } return s;
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n%2 == 0){
        int w=0;
        for(int i=0; i<((n/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        w+=(W(n/2)*W((n/2)+1))/2;
        return w;
    }
    if(n%2 != 0){
        int w=0;
        for(int i=1; i<(((n+1)/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        return w;
    } 
    if(n==0){
        return 0;
    }
    if(n==1){
        return 1;
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2071230, 2024-11-02 14:10:51, PPPP--Pxxx (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if(k>n){
        return 0;
    }else if(k==0){
        return 1;
    }return (T(n,k-1)+T(n-1,k-1)+T(n-1,k));
}
long long S(int n) { // Schroder Number
    int s = 0;
    if(n==0){
        return 1;
    }else if(n==1){
        return 2;
    }else{
        for(int k=1;k<n-2;++k){
            s+=S(k)*S(n-k-1);
        } 
        s += 3*S(n-1); 
    } return s;
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n==0){
        return 0;
    }else if(n==1){
        return 1;
    }else if((n%2 == 0) &&(n != 0)){
        int w=0;
        for(int i=0; i<((n/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        w+=(W(n/2)*W((n/2)+1))/2;
    }else if((n%2 != 0)&&(n!=1)){
        int w=0;
        for(int i=1; i<(((n+1)/2)-1); ++i){
            w += W(i)*W(n-i);
        }
        return w;
    }
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

6733065121
# 2068710, 2024-11-02 09:28:20, P--P--P--- (30%)

#include <iostream>
#include <map>
using namespace std;
map<int,int> memo1;
map<int,int> memo2;
map<int,int> memo3;
long long T(int n, int k) {  // Schroder Triangle
    if(k > n) {
        return 0;
    } else if(k == 0) {
        return 1;
    } else {
        return (T(n,k-1)+T(n-1,k-1)+T(n-1,k)+T(n-1,k));
    }
    return -1;
}
long long S(int n) {         // Schroder Number
    if(n == 0) {
        return 1;
    } else if(n == 1) {
        return 2;
    } else if (n >= 2) {

    if(memo1.find(n) != memo1.end()) {
        return memo1[n];
    }
    int result = 0;
    for(int k = 1;k <= n-2;k++) {
        result += S(k)*S(n-k-1);
    }
    memo1[n] = result;
    return result+ 3*S(n-1);
    }
    return -1;
}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n==0) {
        return 0;
    } if (n == 1) {
        return 1;
    }
    else if (n%2 == 0) {
        if(memo2.find(n) != memo2.end()) {
            return memo2[n];
        }
        int result = 0;
        for(int i = 1;i <= (n/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo2[n] = result;
        return (result+((W(n/2)*(W(n/2)+1))/2));
    } else if (n%2==1) {
        if(memo3.find(n) != memo3.end()) {
            return memo3[n];
        }
        int result = 0;
        for(int i = 1;i <= ((n+1)/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo3[n] = result;
        return result;
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068727, 2024-11-02 09:30:15, P--P--P--- (30%)

#include <iostream>
#include <map>
using namespace std;
map<int,int> memo1;
map<int,int> memo2;
map<int,int> memo3;
long long T(int n, int k) {  // Schroder Triangle
    if(k > n) {
        return 0;
    } else if(k == 0) {
        return 1;
    } else {
        return (T(n,k-1)+T(n-1,k-1)+T(n-1,k)+T(n-1,k));
    }
    return -1;
}
long long S(int n) {         // Schroder Number
    if(n == 0) {
        return 1;
    } else if(n == 1) {
        return 2;
    } else if (n >= 2) {

    if(memo1.find(n) != memo1.end()) {
        return memo1[n];
    }
    int result = 0;
    for(int k = 1;k <= n-2;k++) {
        result += S(k)*S(n-k-1);
    }
    memo1[n] = result;
    return result+ 3*S(n-1);
    }
    return -1;
}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n==0) {
        return 0;
    } if (n == 1) {
        return 1;
    }
    else if (n%2 == 0) {
        if(memo2.find(n) != memo2.end()) {
            return memo2[n];
        }
        int result = 0;
        for(int i = 1;i <= (n/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo2[n] = result;
        return (result+((W(n/2)*(W(n/2)+1))/2));
    } else if (n%2==1) {
        if(memo3.find(n) != memo3.end()) {
            return memo3[n];
        }
        int result = 0;
        for(int i = 1;i <= ((n+1)/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo3[n] = result;
        return result;
    }
    return -1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068786, 2024-11-02 09:36:21, PPPP--P--- (50%)

#include <iostream>
#include <map>
using namespace std;
map<int,int> memo1;
map<int,int> memo2;
map<int,int> memo3;
long long T(int n, int k) {  // Schroder Triangle
    if(k > n) {
        return 0;
    } else if(k == 0) {
        return 1;
    } else {
        return (T(n,k-1)+T(n-1,k-1)+T(n-1,k));
    }
    return -1;
}
long long S(int n) {         // Schroder Number
    if(n == 0) {
        return 1;
    } else if(n == 1) {
        return 2;
    } else if (n >= 2) {

    if(memo1.find(n) != memo1.end()) {
        return memo1[n];
    }
    int result = 0;
    for(int k = 1;k <= n-2;k++) {
        result += S(k)*S(n-k-1);
    }
    memo1[n] = result;
    return result+ 3*S(n-1);
    }
    return -1;
}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n==0) {
        return 0;
    } if (n == 1) {
        return 1;
    }
    else if (n%2 == 0) {
        if(memo2.find(n) != memo2.end()) {
            return memo2[n];
        }
        int result = 0;
        for(int i = 1;i <= (n/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo2[n] = result;
        return (result+((W(n/2)*(W(n/2)+1))/2));
    } else if (n%2==1) {
        if(memo3.find(n) != memo3.end()) {
            return memo3[n];
        }
        int result = 0;
        for(int i = 1;i <= ((n+1)/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo3[n] = result;
        return result;
    }
    return -1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069501, 2024-11-02 10:53:01, PPPP--P--- (50%)

#include <iostream>
#include <map>
using namespace std;
map<int,int> memo1;
map<int,int> memo2;
map<int,int> memo3;
long long T(int n, int k) {  // Schroder Triangle
    if(k > n) {
        return 0;
    } else if(k == 0) {
        return 1;
    } else {
        return (T(n,k-1)+T(n-1,k-1)+T(n-1,k));
    }
    return -1;
}
long long S(int n) {         // Schroder Number
    if(n == 0) {
        return 1;
    } else if(n == 1) {
        return 2;
    } else if (n >= 2) {

    if(memo1.find(n) != memo1.end()) {
        return memo1[n];
    }
    int result = 0;
    for(int k = 1;k <= n-2;k++) {
        result += S(k)*S(n-k-1);
    }
    memo1[n] = result;
    return (result + 3*S(n-1));
    }
    return -1;
}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n==0) {
        return 0;
    } if (n == 1) {
        return 1;
    }
    else if (n%2 == 0) {
        if(memo2.find(n) != memo2.end()) {
            return memo2[n];
        }
        int result = 0;
        for(int i = 1;i <= (n/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo2[n] = result;
        return (result+((W(n/2)*(W(n/2)+1))/2));
    } else if (n%2==1) {
        if(memo3.find(n) != memo3.end()) {
            return memo3[n];
        }
        int result = 0;
        for(int i = 1;i <= ((n+1)/2)-1;i++) {
            result += W(i)*W(n-i);
        }
        memo3[n] = result;
        return result;
    }
    return -1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733096621
# 2070579, 2024-11-02 12:45:26, PPPPxxP--x (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k==0)return 1;
if(k>n) return 0;
if(k<=n)return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) {         // Schroder Number
long long sum=0;
for(int k=1;k<=n-2;k++){
    sum+=S(k)*S(n-k+1);
}
if(n==0) return 1;
if(n==1) return 2;
if (n>=2) return 3*S(n-1)+ sum;
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n==0) return 0;
if(n==1) return 1;
long long sum=0;
for(int i=1;i<=(n/2)-1;i++){
    sum+=(W(i)*W(n-i));
}
return ((W(n/2)*(W(n/2)+1))/2)+sum;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070622, 2024-11-02 12:50:31, PPPPxxP--x (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k==0)return 1;
if(k>n) return 0;
if(k<=n)return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) {         // Schroder Number
long long sum=0;
for(int k=1;k<=n-2;k++){
    sum+=S(k)*S(n-k+1);
}
if(n==0) return 1;
if(n==1) return 2;
if (n>=2) return 3*S(n-1)+ sum;
}
long long W(int n) {// Wedderburn–Etherington Number
if(n==0) return 0;
if(n==1) return 1;
long long sum=0;
if (n%2==0){
    for(int i=1;i<=(n/2)-1;i++){
    sum+=(W(i)*W(n-i));
}
return ((W(n/2)*(W(n/2)+1))/2)+sum;}
if (n%2!=0){
    for(int i=1;i<=(n+1/2)-1;i++){
    sum+=(W(i)*W(n-i));
}
return sum;
}
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070664, 2024-11-02 12:56:36, PPPPxxP--x (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k==0)return 1;
if(k>n) return 0;
if(k<=n)return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) {         // Schroder Number
long long sum=0;
for(int k=1;k<=n-2;k++){
    sum+=S(k)*S(n-k+1);
}
if(n==0) return 1;
if(n==1) return 2;
if (n>=2) return 3*S(n-1)+ sum;
}
long long W(int n) {// Wedderburn–Etherington Number
if(n==0) return 0;
if(n==1) return 1;
long long sum=0;
if (n%2==0 && n!=0){
    for(int i=1;i<=(n/2)-1;i++){
    sum+=(W(i)*W(n-i));
}
return ((W(n/2)*(W(n/2)+1))/2)+sum;}
if (n%2!=0){
    for(int i=1;i<=(n+1/2)-1;i++){
    sum+=(W(i)*W(n-i));
}
return sum;
}
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733119421
# 2068688, 2024-11-02 09:26:00, PPPP--Pxxx (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if(k == 0) return 1;
    else if(k > n) return 0;
    return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) { // Schroder Number
    if(n == 0)return 1;
    if(n == 1)return 2;
    if(n >= 2){
        int x;
        x = 3*S(n-1);
        for(int k=1; k < n-2; k++){
            return x + S(k)*S(n-k-1);
        }
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0)return 0;
    if(n == 1)return 1;
    if(n % 2 != 0){
        for(int i = 1; i < ((n+1)/2)-1; i++){
            return W(n*i)*W(n-i);
        }
    }
    else if(n % 2 == 0){
        int e;
        e = W(n/2)*(W(n/2)+1)/2;
        for(int i = 1; i < (n/2)-1; i++){
            return e + W(i)*W(n-i);
        }
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }   
    return 0;
}
# 2068703, 2024-11-02 09:27:24, PPPP--Pxxx (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if(k == 0) return 1;
    else if(k > n) return 0;
    return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) { // Schroder Number
    if(n == 0)return 1;
    if(n == 1)return 2;
    if(n >= 2){
        int x;
        x = 3*S(n-1);
        for(int k=1; k < n-2; k++){
            return x + S(k)*S(n-k-1);
        }
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0)return 0;
    if(n == 1)return 1;
    if(n % 2 != 0){
        for(int i = 1; i < ((n+1)/2)-1; i++){
            return W(i)*W(n-i);
        }
    }
    else if(n % 2 == 0){
        int e;
        e = W(n/2)*(W(n/2)+1)/2;
        for(int i = 1; i < (n/2)-1; i++){
            return e + W(i)*W(n-i);
        }
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }   
    return 0;
}
# 2070418, 2024-11-02 12:07:34, PPPP--P--- (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if(k == 0) return 1;
    else if(k > n) return 0;
    return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
long long S(int n) { // Schroder Number
    if(n == 0)return 1;
    if(n == 1)return 2;
    if(n >= 2){
        long long int x = 0, y = 0;
        x = 3*S(n-1);
        for(long long int k=1; k < n-2; k++){
            y = S(k)*S(n-k-1);
        }
        return x + y;
    }
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0)return 0;
    if(n == 1)return 1;
    if(n % 2 != 0){
        long long int u = 0;
        for(long long int i = 1; i < ((n+1)/2)-1; i++){
            u = W(i)*W(n-i);
        }
        return u;
    }
    else if(n % 2 == 0){
        long long int e =0,g =0;
        e = (W(n/2)*(W(n/2)+1)) / 2;
        for(long long int i = 1; i < (n/2)-1; i++){
            g = W(i)*W(n-i);
        }
        return e + g;
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }   
    return 0;
}

6733136021
# 2070762, 2024-11-02 13:13:32, P--P------ (20%)

#include <bits/stdc++.h>
using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(k>1&&n>=k){
        return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
    }
    else if(k>n){
        return 0;
    }
    else{
        return 1;
    }
}
long long S(int n) {         // Schroder Number
    if(n==0)return 1;
    if(n==1)return 2;
    if(n>=2){
        long long sum=0;
        for(long long k=1;k<(n-2);k++){
            sum += S(k)*S((n-2)-k-1);
        }
        return 3*S(n-1)+sum;
    }
}
long long W(int n) {         // Wedderburn–Etherington Number
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071080, 2024-11-02 13:52:36, P--P------ (20%)

#include <bits/stdc++.h>
using namespace std;

long long int T(long long int n, long long int k) {  // Schroder Triangle
    if(k>1&&n>=k){
        return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
    }
    else if(k>n){
        return 0;
    }
    else if (k==0){
        return 1;
    }
}
long long int S(long long int n) {         // Schroder Number
    if(n==0)return 1;
    if(n==1)return 2;
    if(n>=2){
        long long int sum=0;
        for(long long int k=1;k<(n-2);k++){
            sum += S(k)*S((n-2)-k-1);
        }
        return 3*S(n-1)+sum;
    }
}
long long int W(long long int n) {         // Wedderburn–Etherington Number


}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071199, 2024-11-02 14:06:57, P--PPPPTT- (50%)

#include <bits/stdc++.h>
using namespace std;

long long int T(long long int n, long long int k) {  // Schroder Triangle
    if(k>1&&n>=k){
        return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
    }
    else if(k>n){
        return 0;
    }
    else if (k==0){
        return 1;
    }
}
long long int S(long long int n) {         // Schroder Number
    if(n==0)return 1;
    if(n==1)return 2;
    if(n>=2){
        long long int sum=0;
        for(long long int k=1;k<=(n-2);k++){
            sum += S(k)*S(n-k-1);
        }
        return 3*S(n-1)+sum;
    }
}
long long int W(long long int n) {         // Wedderburn–Etherington Number
    if(n==0)return 0;
    if(n==1)return 1;
    if(n%2==0){
        long long int sum=0;
        for(int i=1;i<((n/2)-1);i++){
            sum += W(i)*W(n-1);
        }
        return ((W(n/2)*(W(n/2)+1))/2)+sum;
    }
    else if(n%2==1){
        long long int sum=0;
        for(int i=1;i<((n/2)-1);i++){
            sum += W(i)*W(n-1);
        }
        return sum;
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733129721
# 2070661, 2024-11-02 12:56:25, P--P--PxxT (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k <= n && k > 1) { return T(n,k-1) + T(n-1, k-1) +T(n-1, k); }
    if (k > n) {return 0;}
    if (k == 0) {return 1;}

    return 0;
}
long long S(int n) {         // Schroder Number
    if (n == 0) {return 1;}
    if (n == 1) {return 2;}

    int result = 3*S(n-1);
    for (int i=0; i < n-2; ++i) {
        for (int k=1; k < n; k++) {
            result += S(k) * S(n-k-1);
        }
    }
    return result;

}
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {return 0;}
    if (n == 1) {return 1;}

    int result = 0;
    if (n % 2 == 0) {
        result += (W(n/2)*W(n/2)+1)/2;
        for (int i=0; i < (n/2)-1; ++i) {
            for (int j=1; j < i; ++j) {
                result += W(i)*W(n-i);
            }
        }
    } else {
        for (int i=0; i < ((n+1)/2) - 1; ++i) {
            result += W(i)*W(n-i);
        }
    }

    return result;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071372, 2024-11-02 14:28:37, PPPP--P--- (50%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > n) {return 0;}
    if (k == 0) {return 1;}

    return T(n,k-1) + T(n-1, k-1) + T(n-1, k);
}
long long S(int n) {         // Schroder Number
    if (n == 0) {return 1;}
    if (n == 1) {return 2;}

    int result = 3*S(n-1);
    for (int k=1; k < n-2; ++k) {
        result += S(k) * S(n-k-1);
    }
    return result;

}
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {return 0;}
    if (n == 1) {return 1;}

    int result = 0;
    if (n % 2 == 0) {
        result += (W(n/2)*W(n/2)+1)/2;
        for (int i=1; i < (n/2)-1; ++i) {
            result += W(i)*W(n-i);
        }
    } else {
        for (int i=1; i < ((n+1)/2) - 1; ++i) {
            result += W(i)*W(n-i);
        }
    }

    return result;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6633075321
# 2070758, 2024-11-02 13:13:11, P--PPPPxxx (50%)

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long T(int n, int k) { // Schroder Triangle

    if(k==0){
        return 1;
    }else if(1<k&&k<=n){
        return T(n,k-1) +T(n-1,k-1) +T(n-1,k);
    }else if(k>n){
        return 0;
    }
}
long long S(int n) { // Schroder Number
    if(n==0){
        return 1;
    }
    if(n==1){
        return 2;
    }
    if(n>=2){
       
        int x=0;

        for(int k=1;k<=n-2;k++){
             x+=S(k)*S(n-k-1);
        }
       return 3*S(n-1)+x;
    }

}
long long W(int n) { // Wedderburn–Etherington Number

    if(n==0){
        return 0;
    }
    if(n==1){
        return 1;
    }if(n>1&&n%2==0){
        int z;
        for(int i=1;i<=((n/2)-1);i++){
           z+=  W(i)*W(n-i);
        }
        return (W(n/2)* W((n/2)+1))/2 +z;
    }

    if(n>2&&n%2!=0){
        int y=0;
        for(int i=1;i<=((n+1)/2)-1;i++){
           y+=  W(i)*W(n-i);
        }
        return y;
    }


}
int main() {
   string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
         }
    }
     return 0;
}

6733180621
# 2070618, 2024-11-02 12:50:00, PPPP--P--- (50%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
    if(k == 0) return 1;
    if(k > n) return 0;
    return T(n, k-1) + T(n-1, k-1) + T(n - 1, k);
}
long long S(int n) { // Schroder Number
    if(n == 0) return 1;
    if(n == 1) return 2;
    int sum = 0;
    for(int k = 1; k < n-2 ;k++){
        sum += S(k) * S(n-k-1);
    }
    return 3*S(n-1) + sum;
}
long long W(int n) { // Wedderburn–Etherington Number
    if(n == 0) return 0;
    if(n == 1) return 1;
    if(n == 2){
        int sum = 0;
        for(int i = 1; i < (n/2)-1; i++){
            sum += W(i) * W(n - i);
        }
        return ((W(n/2) * (W(n/2) + 1)) / 2) + sum;
    }
    int x = 0;
    for(int i = 1; i < ((n+1)/2) - 1; i++){
        x += W(i) * W(n-i);
    }
    return x;
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

Max Score = 40


6733042721
# 2068697, 2024-11-02 09:26:40, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 || k > 0 && n==0) return 1;
if(k>n) return 0;
return T(n,k-1) + T(n-1,k-1) + T(n-1,k);


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 && n >1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068705, 2024-11-02 09:27:42, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 /*|| k > 0 && n==0*/) return 1;
if(k>n) return 0;
return T(n,k-1) + T(n-1,k-1) + T(n-1,k);


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 ){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068718, 2024-11-02 09:29:18, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 /*|| k > 0 && n==0*/) return 1;
if(k>n) return 0;
return T(n,k-1) + T(n-1,k-1) + T(n-1,k);


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i < (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i < ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068783, 2024-11-02 09:35:42, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 || k > 0 && n==0) return 1;
if(k > n) return 0;

return T(n,k-1) + T(n-1,k-1) + T(n-1,k);


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2068801, 2024-11-02 09:38:36, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 || k > 0 && n==0) return 1;
if(k > n) return 0;
if(k >1 && k <= n) {
   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    };


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069735, 2024-11-02 11:19:35, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 || k > 0 && n==0) return 1;
if(k > n) return 0;
if(k >1 && k <= n) {
   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
    };


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069736, 2024-11-02 11:19:57, xxxPPPP--x (40%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
if(k==0 && n>0 || k > 0 && n==0) return 1;
if(k > n) return 0;

   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
  


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069916, 2024-11-02 11:36:35, Compilation error (0%)

#include <iostream>
using namespace std;

long long T(int n, int k) { // Schroder Triangle
long long f = 0;
if(k==0 && n >0|| n==0 && k > 0) return 1;

 if( k > 1 && n >= k){
   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);}

return 0;
}


}
long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069920, 2024-11-02 11:36:52, ---PPPP--- (40%)

#include <iostream>
using namespace std;

long long T(int n, int k) { // Schroder Triangle
long long f = 0;
if(k==0 && n >0|| n==0 && k > 0) return 1;

 if( k > 1 && n >= k){
   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);}

return 0;
}



long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069926, 2024-11-02 11:37:31, xxxPPPP--x (40%)

#include <iostream>
using namespace std;

long long T(int n, int k) { // Schroder Triangle
long long f = 0;
if(k==0 && n >0|| n==0 && k > 0) return 1;

 if( k > 1 && n >= k){
   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);}
}



long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2069931, 2024-11-02 11:37:43, xxxPPPP--x (40%)

#include <iostream>
using namespace std;

long long T(int n, int k) { // Schroder Triangle
long long f = 0;
if(k==0 && n >0|| n==0 && k > 0) return 1;


   return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
}



long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 !=0 &&  n!= 1){
 for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}
for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
 }
return (((W(n/2) )*(W(n/2) +1))/2) + evensum;

}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070076, 2024-11-02 11:49:22, xxxPPPP--x (40%)

#include <iostream>
using namespace std;


long long T(int n, int k) { // Schroder Triangle

if(k==0 && n >0|| n==0 && k > 0) return 1;
   if(n < k) return 0;
return  T(n,k-1) + T(n-1,k-1) + T(n-1,k);

}



long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;
long long evensum =0;
if(n == 0 || n==1) return n;
if(n%2 ==0){
 for(int i =1; i <= ((n/2)-1); i++){

evensum+= W(i) * W(i-1);
}
return (((W(n/2))*(W(n/2) +1))/2) + evensum;
}


for(int i =1; i <= (((n+1)/2)-1); i++){

sumW += W(i) * W(i-1);
 }

return sumW;
}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}
# 2070097, 2024-11-02 11:50:21, xxxPPPP--x (40%)

#include <iostream>
using namespace std;


long long T(int n, int k) { // Schroder Triangle

if(k==0 && n >0|| n==0 && k > 0) return 1;
   if(n < k) return 0;
return  T(n,k-1) + T(n-1,k-1) + T(n-1,k);

}



long long S(int n) { // Schroder Number
long long sum = 0;
if(n==0) return 1;
if(n==1) return 2;
for(int k = 1; k<= n-2; k++){
 sum += (S(k) *S(n-k-1));


}
return sum + (3*(S(n-1)));
}


long long W(int n) { // Wedderburn–Etherington Number
long long sumW = 0;

if(n == 0 || n==1) return n;
if(n%2 ==0){
 for(int i =1; i <= ((n/2)-1); i++){

sumW+= W(i) * W(i-1);
}
return (((W(n/2))*(W(n/2) +1))/2) + sumW;
}


for(int i =1; i <= (((n+1)/2)-1); i++){
sumW += W(i) * W(i-1);
 }
return sumW;
}


int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}

6733215021
# 2070354, 2024-11-02 12:05:05, P---PPP--- (40%)

#include <iostream>
using namespace std;
long long T(int n, int k)
{ // Schroder Triangle
if(k==0){
    return 1;
}
if(k>n){
    return 0;
}
if(k > 1 && n >= k){
    return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
}
return 0;
}
long long S(int n)
{ // Schroder Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 2;
}
if(n >= 2){
    int sum = 0;
    for(int i = 1; i <= n-2; i++){
        sum += (S(i) * S(n-i-1));
    }
    return sum + (3*S(n-1));
}
return 0;
}
long long W(int n)
{ // Wedderburn–Etherington Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 1;
}
if(n>=2){
    int sum = 0;
    if(n % 2 == 0){
        for(int i = 1; i <= n/2 - 1; i++){
            sum += (W(i) * W(n-i));
        }
    }
    return sum + ((W(n/2)) * (W(n/2) + 1))/2;
}
if(n>=3){
    int sum = 0;
    if(n % 2 == 1){
        for(int i = 1; i <= ((n+1)/2) - 1; i++){
            sum += (W(i) * W(n-i));
        }           
    }
    return sum;
}
return 0;
}
// loop
int main()
{
    string fn;
    int p1, p2;
    while (cin >> fn >> p1)
    {
        if (fn == "T")
        {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1, p2) << endl;
        }
        else if (fn == "S")
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        }
        else if (fn == "W")
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070361, 2024-11-02 12:05:34, P---PPPxxx (40%)

#include <iostream>
using namespace std;
long long T(int n, int k)
{ // Schroder Triangle
if(k==0){
    return 1;
}
if(k>n){
    return 0;
}
if(k > 1 && n >= k){
    return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
}
return 0;
}
long long S(int n)
{ // Schroder Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 2;
}
if(n >= 2){
    int sum = 0;
    for(int i = 1; i <= n-2; i++){
        sum += (S(i) * S(n-i-1));
    }
    return sum + (3*S(n-1));
}
return 0;
}
long long W(int n)
{ // Wedderburn–Etherington Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 1;
}
if(n>=2){
    int sum = 0;
    if(n % 2 == 0){
        for(int i = 0; i < n/2 - 1; i++){
            sum += (W(i) * W(n-i));
        }
    }
    return sum + ((W(n/2)) * (W(n/2) + 1))/2;
}
if(n>=3){
    int sum = 0;
    if(n % 2 == 1){
        for(int i = 0; i < ((n+1)/2) - 1; i++){
            sum += (W(i) * W(n-i));
        }           
    }
    return sum;
}
return 0;
}
// loop
int main()
{
    string fn;
    int p1, p2;
    while (cin >> fn >> p1)
    {
        if (fn == "T")
        {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1, p2) << endl;
        }
        else if (fn == "S")
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        }
        else if (fn == "W")
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070387, 2024-11-02 12:06:31, P-----Pxxx (20%)

#include <iostream>
using namespace std;
long long T(int n, int k)
{ // Schroder Triangle
if(k==0){
    return 1;
}
if(k>n){
    return 0;
}
if(k > 1 && n >= k){
    return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
}
return 0;
}
long long S(int n)
{ // Schroder Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 2;
}
if(n >= 2){
    int sum = 0;
    for(int i = 0; i < n-2; i++){
        sum += (S(i) * S(n-i-1));
    }
    return sum + (3*S(n-1));
}
return 0;
}
long long W(int n)
{ // Wedderburn–Etherington Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 1;
}
if(n>=2){
    int sum = 0;
    if(n % 2 == 0){
        for(int i = 0; i < n/2 - 1; i++){
            sum += (W(i) * W(n-i));
        }
    }
    return sum + ((W(n/2)) * (W(n/2) + 1))/2;
}
if(n>=3){
    int sum = 0;
    if(n % 2 == 1){
        for(int i = 0; i < ((n+1)/2) - 1; i++){
            sum += (W(i) * W(n-i));
        }           
    }
    return sum;
}
return 0;
}
// loop
int main()
{
    string fn;
    int p1, p2;
    while (cin >> fn >> p1)
    {
        if (fn == "T")
        {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1, p2) << endl;
        }
        else if (fn == "S")
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        }
        else if (fn == "W")
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070395, 2024-11-02 12:06:47, P---PPPxxx (40%)

#include <iostream>
using namespace std;
long long T(int n, int k)
{ // Schroder Triangle
if(k==0){
    return 1;
}
if(k>n){
    return 0;
}
if(k > 1 && n >= k){
    return T(n,k-1) + T(n-1,k-1) + T(n-1,k);
}
return 0;
}
long long S(int n)
{ // Schroder Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 2;
}
if(n >= 2){
    int sum = 0;
    for(int i = 1; i <= n-2; i++){
        sum += (S(i) * S(n-i-1));
    }
    return sum + (3*S(n-1));
}
return 0;
}
long long W(int n)
{ // Wedderburn–Etherington Number
if(n == 0){
    return 0;
}
if(n == 1){
    return 1;
}
if(n>=2){
    int sum = 0;
    if(n % 2 == 0){
        for(int i = 0; i < n/2 - 1; i++){
            sum += (W(i) * W(n-i));
        }
    }
    return sum + ((W(n/2)) * (W(n/2) + 1))/2;
}
if(n>=3){
    int sum = 0;
    if(n % 2 == 1){
        for(int i = 0; i < ((n+1)/2) - 1; i++){
            sum += (W(i) * W(n-i));
        }           
    }
    return sum;
}
return 0;
}
// loop
int main()
{
    string fn;
    int p1, p2;
    while (cin >> fn >> p1)
    {
        if (fn == "T")
        {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1, p2) << endl;
        }
        else if (fn == "S")
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        }
        else if (fn == "W")
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

Max Score = 30


6733255021
# 2068637, 2024-11-02 09:20:57, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if(n == 0 || n == 0)

}
long long S(int n) {       // Schroder Number
if (n == 1 || n == 2)
return 1;

return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);



}
long long W(int n) {         // Wedderburn–Etherington Number


}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068867, 2024-11-02 09:48:56, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if(n == 0 || k == 0)
return 1;

if (n == 1 || n == 2)
return 1;

return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);

}
long long S(int n) {       // Schroder Number
if (n == 1 || n == 2)
return 1;

return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);


}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 0)
return 1;
if(n % 2 == 0)
return 1;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2068974, 2024-11-02 09:58:45, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if(n == 0 || k == 0)
return 1;

if (n == 1 || n == 2)
return 1;
if (n == 1 || n == 1)
return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);

}
long long S(int n) {       // Schroder Number
if (n == 1 || n == 2)
return 1;

return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 0)
return 1;
if(n % 2 == 0)
return 1;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069029, 2024-11-02 10:05:14, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if(n == 0 || k == 0)
return 1;

if (n == 1 || k == 2)
return 1;
if (n == 1 || k == 1)
return 0;
long long S(int n) {       // Schroder Number
if (n == 1 || n == 2)
return 1;

return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 0)
return 1;
if(n % 2 == 0)
return 1;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069034, 2024-11-02 10:05:50, P--x--P--- (20%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if(n == 0 || k == 0)
return 1;

if (n == 1 || k == 2)
return 1;
if (n == 1 || k == 1)
return 0;
}
long long S(int n) {       // Schroder Number
if (n == 1 || n == 2)
return 1;

return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 0)
return 1;
if(n % 2 == 0)
return 1;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069708, 2024-11-02 11:16:01, ------P--- (10%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (k == 0)
return 1;
if (n <= k)
return k ;
}

long long S(int n) {   // Schroder Number
if (n == 1 || n == 2)
return 1;

if(n == 0)
return 1;
if(n == 1)
return 2;

if(n == 1 ||n == 2 )
return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 1)
return 1;

if(n % 2 == 0)
return 0;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069852, 2024-11-02 11:30:15, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if (n == 1 || n == 2)
return 1;

if(k == 0)
return 1;
if(k > n)
return 0;

if(n == 1 ||n == 2 )
return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long S(int n) {   // Schroder Number
if (n == 1 || n == 2)
return 1;

if(n == 0)
return 1;
if(n == 1)
return 2;

if(n == 1 ||n == 2 )
return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 1)
return 1;

if(n % 2 == 0)
return 0;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070234, 2024-11-02 11:59:22, Compilation error (0%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangl
if(k == 0)
return 1;
if(k > n)
return 0;

if(n == 1 ||n == 2 )
return ((6 * n - 9) * S(n - 1) - (n - 3) * S(n - 2) / n);
}

long long S(int n) {   // Schroder Number
if (n == 1 || n == 2)
return 1;


if(n == 0)
return 1;
if(n == 1)
return 2;

if(n == 1 ||n == 2 )
return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 1)
return 1;

if(n % 2 == 0)
return 0;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070317, 2024-11-02 12:03:22, P--P--P--- (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
if(n == 0 || k == 0)
return 1;
if (n == 1 || k == 2)
return 1;
if (n == 1 || k == 1)
return 0;
if (k > n)
return 0;
}

long long S(int n) {       // Schroder Number
if (n == 0)
return 1;
if (n == 1)
return 2;

if (n>0)
return ((6 * n - 9) * S(n - 1) -
        (n - 3) * S(n - 2) / n);
}
long long W(int n) {         // Wedderburn–Etherington Number
if(n == 0)
return 0;
if(n == 0)
return 1;
if(n % 2 == 0)
return 1;
if (n % 2 != 0)
return 1;
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733254421
# 2070108, 2024-11-02 11:51:19, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
int sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        for(int k  ;k <= n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}
int sum2 = 0 ;
int sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        for (int i = 1; i <= (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 ) {
        for (int i = 1; i <= ((n+1)/2)-1 ; i++) {
            sum3 += W(i)*W(n-i) ;
        }
        return sum3 ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070118, 2024-11-02 11:52:08, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
int sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        for(int k  ;k <= n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}
int sum2 = 0 ;
int sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        for (int i = 1; i <= (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 ) {
        for (int i = 1; i <= ((n+1)/2)-1 ; i++) {
            return W(i)*W(n-i) ;
        }
        
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070175, 2024-11-02 11:55:30, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
long long sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        for(int k  ;k <= n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}
long long sum2 = 0 ;
long long sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        for (int i = 1; i <= (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 ) {
        for (int i = 1; i <= ((n+1)/2)-1 ; i++) {
            sum3 += W(i)*W(n-i) ;
        }
        return sum3 ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070239, 2024-11-02 11:59:46, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
long long sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        for(int k  ;k <= n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}
long long sum2 = 0 ;
long long sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        for (int i = 1; i <= (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 && n!= 1 ) {
        for (int i = 1; i <= ((n+1)/2)-1 ; i++) {
            sum3 += W(i)*W(n-i) ;
        }
        return sum3 ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070318, 2024-11-02 12:03:23, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
long long sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        for(long long k = 1 ;k <= n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}
long long sum2 = 0 ;
long long sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        for (long long i = 1; i <= (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 && n!= 1 ) {
        for (long long i = 1; i <= ((n+1)/2)-1 ; i++) {
            sum3 += W(i)*W(n-i) ;
        }
        return sum3 ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070391, 2024-11-02 12:06:39, PxxPxxPxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
long long sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        long long k = 1 ;
        k++ ;
    return 3*S(n-1)+(S(k)+S(n-k-1)) ;
        
    }
    
}
long long sum2 = 0 ;
long long sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        long long i = 1; i++ ;
        return (W(n/2)+W((n/2)+1))/2 +  W(i)*W(n-i) ;
    }
    if (n>0 &&n%2 != 0 && n!= 1 ) {
        long long i = 1 ;
        i++ ;
        return W(i)*W(n-i) ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070426, 2024-11-02 12:08:06, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}
long long sum = 0 ;
long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        for(long long k  ;k < n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}
long long sum2 = 0 ;
long long sum3 = 0 ;
long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        for (long long i = 1; i < (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 && n!= 1 ) {
        for (long long i = 1; i < ((n+1)/2)-1 ; i++) {
            sum3 += W(i)*W(n-i) ;
        }
        return sum3 ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070477, 2024-11-02 12:09:58, PxxP--Pxxx (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k == 0)  {
        return 1 ;
    }
    if( k > 1 && k <= n) T(n,k-1) + T(n-1,k-1) + T(n-1,k) ;
    else if(k > n) return 0 ;
    
}

long long S(int n) {         // Schroder Number
    if (n == 0) return 1 ;
    if (n == 1 ) return 2 ;
    if (n >= 2) {
        long long sum = 0 ;
        for(long long k = 1 ;k < n-2 ; k++) sum += (S(k)+S(n-k-1)) ;
    return 3*S(n-1)+sum ;
        
    }
    
}

long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0 ;
    }
    if (n == 1) {
        return 1 ;
    }
    if (n>0 &&n%2 == 0 ) {
        long long sum2 = 0 ;
        for (long long i = 1; i < (n/2)-1 ; i++) {
            sum2 += W(i)*W(n-i) ;
        }
        return (W(n/2)+W((n/2)+1))/2 + sum2 ;
    }
    if (n>0 &&n%2 != 0 && n!= 1 ) {
        long long sum3 = 0 ;
        for (long long i = 1; i < ((n+1)/2)-1 ; i++) {
            sum3 += W(i)*W(n-i) ;
        }
        return sum3 ;
    }
    
    

}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733103321
# 2071086, 2024-11-02 13:53:54, P--xxxxxx- (10%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(k>n) return 0;
    if (k==0) return 1;

    return T(n,k-1)+T(n-1,k-1)+T(n,k-1);

}
long long S(int n) {         // Schroder Number
    /*if(n==1)return 2;
    if(n==0)return 1;

    long long sum;
    for(long long k=1; k<n-2: k++){
        sum += S(k) * S(n-k-1);

    }

    return 3*S(n-1) + */

}
long long W(int n) {         // Wedderburn–Etherington Number


}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071092, 2024-11-02 13:54:34, P--P------ (20%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(k>n) return 0;
    if (k==0) return 1;

    return T(n,k-1)+T(n-1,k-1)+T(n,k-1);

}
long long S(int n) {         // Schroder Number
    if(n==1)return 2;
    if(n==0)return 1;

}
long long W(int n) {         // Wedderburn–Etherington Number


}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071097, 2024-11-02 13:55:09, P--P--P--- (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(k>n) return 0;
    if (k==0) return 1;

    return T(n,k-1)+T(n-1,k-1)+T(n,k-1);

}
long long S(int n) {         // Schroder Number
    if(n==1)return 2;
    if(n==0)return 1;

}
long long W(int n) {         // Wedderburn–Etherington Number
   if(n==0)return 0;
  if(n==1)return 1;


}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733186421
# 2069337, 2024-11-02 10:37:36, P--PxxP--x (30%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if (k > 1 && k <= n) {
        return T(n,k-1) + T(n-1,k-1) + (T(n-1,k));
    }
    else if (k > n) {
        return 0;
    }
    else {
        return 1;
    }
}

long long S(int n) {         // Schroder Number
    long long t = 0;
    if (n >= 2) {
        for (int i = 1; i < n-2; ++i) {
            t += S(i)*S(n-i-1);
        }
    t = 3*S(n-1);
    }
    else if (n == 0) {
        return 1;
    }
    else if (n == 1) {
        return 2;
    }
}

long long W(int n) {         // Wedderburn–Etherington Number
    if (n == 0) {
        return 0;
    }
    else if (n ==1) {
        return 1;
    }
    else if (n % 2 == 0) {
        long long t1 = W(n/2)*(W(n/2)+1)/2;
        long long t2 = 0;
        for (int i = 1; i < (n/2) - 1; ++i) {
            t2 += W(i)*W(n-i);
        }
        return t1 + t2;
    }
    else if (n % 2 != 0 && n > 1) {
        long long t = 0;
        for (int i = 1; i < ((n+1)/2)-1; ++i) {
            t += W(i)*W(n-i);
        }
        return t;
    }
}

int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

Max Score = 20


6633002521
# 2070425, 2024-11-02 12:08:06, P--P------ (20%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(n>=k && k>1){
        return T(n,k-1)+T(n-1,k-1)+T(n-1,k);
    }else if(k>n){
        return 0;
    }else if(k==0){
        return 1;
    }

}
long long S(int n) {         // Schroder Number
    if(n==0){
        return 1;
    }else if(n==1){
        return 2;
    }else if(n>=2){
        int x = 0;
        for(int i = 1;i<n-2;i++){
            x+=S(i)*S(n-i-1);
        }
        return 3*S(n-1)+x;
    }
}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n/2>=1){
        int x = 0;
        for(int i = 1; i<(n/2)-1;i++){
            x+=W(i)*W(n-i);
        }
        return (W(n/2)*W(n/2)+1)/2 + x;
    }
    else if(n%2>=1){
        int x = 0;
        for(int i = 1;i<(n+1)/2 - 1;i++){
            x+=W(i)*W(n-i);
        }
        return x;
    }else if(n==0){
        return 0;
    }else if(n==1){
        return 1;
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070447, 2024-11-02 12:08:52, PxxPxx-xxx (20%)

#include <iostream>

using namespace std;

long long T(int n, int k) {  // Schroder Triangle
    if(n>=k && k>1){
        T(n,k-1)+T(n-1,k-1)+T(n-1,k);
    }else if(k>n){
        return 0;
    }else if(k==0){
        return 1;
    }

}
long long S(int n) {         // Schroder Number
    if(n==0){
        return 1;
    }else if(n==1){
        return 2;
    }else if(n>=2){
        int x = 0;
        for(int i = 1;i<n-2;i++){
            x+=S(i)*S(n-i-1);
        }
        3*S(n-1)+x;
    }
}
long long W(int n) {         // Wedderburn–Etherington Number
    if(n/2>=1){
        int x = 0;
        for(int i = 1; i<(n/2)-1;i++){
            x+=W(i)*W(n-i);
        }
        (W(n/2)*W(n/2)+1)/2 + x;
    }
    else if(n%2>=1){
        int x = 0;
        for(int i = 1;i<(n+1)/2 - 1;i++){
            x+=W(i)*W(n-i);
        }
        return x;
    }else if(n==0){
        return 0;
    }else if(n==1){
        return 1;
    }
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733094321
# 2070956, 2024-11-02 13:38:11, xxxP--P--x (20%)

#include <iostream>
using namespace std;
long long T(int n, int k)
{ // Schroder Triangle
    if(n > 0 && k ==0){
        return 1;
    }
    if(k > n){
        return 0;
    }
    if(1 < k && k <= n){
        return T(n, k-1) + T(n-1, k-1) + T(n-1, k);
    }
}
long long S(int n)
{ // Schroder Number
    if(n == 0){
        return 1;
    }
    if(n == 1){
        return 2;
    }
    if(n >= 2){
        int sum = 0;
        for(int i = 1; i < n-2; i++){
            sum += S(i)*S(n-i-1);
        }
        return 3*S(n-1) + sum;
    }
}
long long W(int n)
{ // Wedderburn–Etherington Number
    if(n == 0){
        return 0;
    }
    if(n == 1){
        return 1;
    }
    if(n > 1){
        if(n%2 == 0){
            int res = 0;
            for(int i =1; i < (n/2) - 1; i++){
                res += W(i)*W(n-i);
            }
            return(W(n/2)*W(n/2) + 1)/2 + res;
        }
        else{
            int res = 0;
            for(int i = 1; i < (n+1)/2 - 1; i++){
                res += W(i)*W(n-i);
            }
            return res;
        }
    }
}
int main()
{
    string fn;
    int p1, p2;
    while (cin >> fn >> p1)
    {
        if (fn == "T")
        {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1, p2) << endl;
        }
        else if (fn == "S")
        {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        }
        else if (fn == "W")
        {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

Max Score = 10


6733033021
# 2070729, 2024-11-02 13:08:57, ---xxxTTTx (0%)

#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include<set>
#include<tuple>
#include<utility>
#include<algorithm>
using namespace std;

long long T(int n, int k) {  // Schroder Triangle
long long N[] = {n,k};

if(1<k<=n) {
  return  N[n,k-1] + N[n-1,k-1] + N[n-1,k];
}
if(k>n){
return    1;

}
return T(n,k);
    }


long long S(int n) {         // Schroder Number
long long M[] = {n};
if(n>=2){
(3*M[n-1]) + M[n -1 -1];
}
if(S(0)){
return 1;
}
if(S(1)){return 2;}
return S(n);
}

long long W(int n) {         // Wedderburn–Etherington Number
long long K[]={n};
while(n%100 == 0){
((K[n/2] * (K[n/2] +1))/2) + K[n-1];
}
while(n%100 != 0){
    K[n-1];
}
if(W(0)){
return 0;
}
if(W(1)){
return 1;
}
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070738, 2024-11-02 13:11:03, ---x--P--- (10%)

#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include<set>
#include<tuple>
#include<utility>
#include<algorithm>
using namespace std;

long long T(int n, int k) {  // Schroder Triangle
long long N[] = {n,k};

if(1<k<=n) {
  return  N[n,k-1] + N[n-1,k-1] + N[n-1,k];
}
if(k>n){
return    1;

}
return T(n,k);
    }


long long S(int n) {         // Schroder Number
long long M[] = {n};
if(n>=2){
return (3*M[n-1]) + M[n -1 -1];
}
if(S(0)){
return 1;
}
if(S(1)){return 2;}
return S(n);
}

long long W(int n) {         // Wedderburn–Etherington Number
long long K[]={n};
while(n%100 == 0){
return ((K[n/2] * (K[n/2] +1))/2) + K[n-1];
}
while(n%100 != 0){
   return K[n-1];
}
if(W(0)){
return 0;
}
if(W(1)){
return 1;
}
return W(1);
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

Max Score = 0


6733090821
# 2068998, 2024-11-02 10:01:57, TTTxxxxxxT (0%)

#include <iostream>

using namespace std;
long long T(int n, int k) {  // Schroder Triangle
if(1<k<=n){
(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
if(k>n){
 cout<<0<<endl;
}
if(n,k=0){
cout<<1<<endl;
}
}
long long S(int n) {    // Schroder Number
}
long long W(int n) {         // Wedderburn–Etherington Number
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069224, 2024-11-02 10:27:53, xxxxxxxxxx (0%)

#include <iostream>

using namespace std;
long long T(int n, int k) {  // Schroder Triangle
/*if(1<k<=n){
(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
if(k>n){
 cout<<0<<endl;
}
if(n,k=0){
cout<<1<<endl;
}*/
}
long long S(int n) {    // Schroder Number
}
long long W(int n) {         // Wedderburn–Etherington Number
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2069352, 2024-11-02 10:38:48, Compilation error (0%)

#include <iostream>

using namespace std;
long long T(int n, int k) {  // Schroder Triangle
if(1<k<=n){
(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
if(k>n){
 cout<<0<<endl;
}
if(n,k=0){
cout<<1<<endl;
}
}
long long S(int n){  // Schroder Number
if(n>=2){        
3*S(n-1)+(S*k*S(n-k-1))
}
}
long long W(int n) {          // Wedderburn–Etherington Number
W*(n/2)*(W*(n/2)+1)/2 + (W(i)W(n-i));
}
int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2070196, 2024-11-02 11:57:08, Compilation error (0%)

#include <iostream>

using namespace std;
long long T(int n, int k) {  // Schroder Triangle
if(1<k<=n){
(n,k-1)+T(n-1,k-1)+T(n-1,k);
}
if(k>n){
 cout<<0<<endl;
}
if(n,k=0){
cout<<1<<endl;
}
}
long long S(int n){   // Schroder Number
if(n>=2){        
3*S(n-1)+(S*k*S(n-k-1))
}
}
long long W(int n) {          // Wedderburn–Etherington Number
(n/2)*(W*(n/2)+1)/2 + (W(i)W(n-i)) for n = 2,4,6,8;
(W(i)W(n-i)) for n = 3,5,7,9;
W(0)=0,W(1)=1;
}


int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6633164521
# 2070918, 2024-11-02 13:33:01, Compilation error (0%)

#include <bits/stdc++.h>
using namespace std;
long long  sum1, sum2, sum3;
long long T(int n, int k) {  // Schroder Triangle

    if (k > n) cout << 0;
    if (k = 0) cout << 1;
    if (k > 1 && n>= k) return T(n, k-1) + T(n-1, k-1) + T(n-1, k);
    
}
long long S(long long n) {         // Schroder Number
    if(n = 0) return 0;
    if (n = 1) return 2;
    if (n >= 2) {
        for (int k = 1; k < n+1; k++) {
         sum1 = S(k) * S(n-k-1); 
         sum1 += sum1;       
    }
    return 3*S(n-1) + sum1;
    };
}
long long W(long long n) {         // Wedderburn–Etherington Number
    if (n = 0) return 0;
    if (n = 1) return 2;
    if (n%2 = 0) { for (int i = 1; i < (n / 2); i++) {
         sum2 = W(i) * W(n-1); 
         sum2 += sum2;       
    }
    return ((W(n/2) * ( W(n/2) + 1 )) / 2) + sum2 ;
    };
    if (n%2 = 1) { for (int i = 1; i < (n / 2); i++) {
         sum3 = W(i) * W(n-1); 
         sum3 += sum3;       
    } return sum3;   
    }
}


int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071731, 2024-11-02 15:09:30, xxx------x (0%)

#include <bits/stdc++.h>
using namespace std;
long long  sum1, sum2, sum3;
long long T(int n, int k) {  // Schroder Triangle

    if (k > n) cout << 0;
    if (k = 0) cout << 1;
    if (k > 1 && n>= k) return T(n, k-1) + T(n-1, k-1) + T(n-1, k);
    
}
long long S(long long n) {         // Schroder Number
    if(n = 0) return 0;
    if (n = 1) return 2;
    if (n >= 2) {
        for (int k = 1; k < n+1; k++) {
         sum1 = S(k) * S(n-k-1); 
         sum1 += sum1;       
    }
    return 3*S(n-1) + sum1;
    };
}
long long W(long long n) {         // Wedderburn–Etherington Number
    if (n = 0) return 0;
    if (n = 1) return 2;
    if (n % 2 == 0) { for (int i = 1; i < (n / 2); i++) {
         sum2 = W(i) * W(n-1); 
         sum2 += sum2;       
    }
    return ((W(n/2) * ( W(n/2) + 1 )) / 2) + sum2 ;
    };
    if (n %2  == 1) { for (int i = 1; i < (n / 2); i++) {
         sum3 = W(i) * W(n-1); 
         sum3 += sum3;       
    } return sum3;   
    }
}


int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}
# 2071770, 2024-11-02 15:13:50, xxx------x (0%)

#include <bits/stdc++.h>
using namespace std;
long long  sum1, sum2, sum3;
long long T(int n, int k) {  // Schroder Triangle

    if (k > n) cout << 0;
    if (k = 0) cout << 1;
    if (k > 1 && n>= k) return T(n, k-1) + T(n-1, k-1) + T(n-1, k);
    
}
long long S(long long n) {         // Schroder Number
    if(n = 0) return 0;
    if (n = 1) return 2;
    if (n >= 2) {
        for (int k = 1; k < n+1; k++) {
         sum1 = S(k) * S(n-k-1); 
         sum1 += sum1;       
    }
    return 3*S(n-1) + sum1;
    };
}
long long W(long long n) {         // Wedderburn–Etherington Number
    if (n = 0) return 0;
    if (n = 1) return 1;
    if (n % 2 == 0) { for (int i = 1; i < (n / 2); i++) {
         sum2 = W(i) * W(n-1); 
         sum2 += sum2;       
    }
    return ((W(n/2) * ( W(n/2) + 1 )) / 2) + sum2 ;
    };
    if (n %2  == 1) { for (int i = 1; i < (n / 2); i++) {
         sum3 = W(i) * W(n-1); 
         sum3 += sum3;       
    } return sum3;   
    }
}


int main() {
    string fn;
    int p1, p2;
    while (cin >> fn >> p1) {
        if (fn == "T") {
            cin >> p2;
            cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
        } else if (fn == "S") {
            cout << fn << '(' << p1 << ") = " << S(p1) << endl;
        } else if (fn == "W") {
            cout << fn << '(' << p1 << ") = " << W(p1) << endl;
        }
    }
    return 0;
}

6733031821
# 2070551, 2024-11-02 12:39:43, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
}
long long S(int n) { // Schroder Number
}
long long W(int n) { // Wedderburn–Etherington Number
}

int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
# 2070578, 2024-11-02 12:45:20, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
       
    else if (k,n) return 0;
    else if () 
}
long long S(int n) { // Schroder Number
   long long
   long long
}
long long W(int n) { // Wedderburn–Etherington Number
 long long sum = 0;
}
int main() {
     string fn;
     int p1, p2;
    while (cin >> fn >> p1) {
    if (fn == "T") {
    cin >> p2;
    cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
    } else if (fn == "S") {
    cout << fn << '(' << p1 << ") = " << S(p1) << endl;
    } else if (fn == "W") {
    cout << fn << '(' << p1 << ") = " << W(p1) << endl;
    }
}
return 0;
# 2070650, 2024-11-02 12:54:04, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k) { // Schroder Triangle
       if (k>n) return 0;
       if (k=n) return 1;
       if (k>1 && n>=k) return  T(n,k-1) + T(n-1,k-1) + T(n−1,k);
}
long long S(int n) { // Schroder Number
   long long
   long long temp = 0
}
long long W(int n) { // Wedderburn–Etherington Number
 long long sum = 0;
}
int main() {
     string fn;
     int p1, p2;
    while (cin >> fn >> p1) {
    if (fn == "T") {
    cin >> p2;
    cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
    } else if (fn == "S") {
    cout << fn << '(' << p1 << ") = " << S(p1) << endl;
    } else if (fn == "W") {
    cout << fn << '(' << p1 << ") = " << W(p1) << endl;
    }
}
return 0;

6733153721
# 2071327, 2024-11-02 14:23:26, ---------- (0%)

#include <iostream>
#include<cmath>

using namespace std;

int main(){
    int a;
    string stri;
    float m,b;
    cin >> a >> stri;

    double x,y;
    float sum1,sum2,sum3,sum4,sum5;

    while (cin >> x >> y)
    {
        float e = x*y;
        sum1 += e;
        sum2 += x;
        sum3 += y;
        float W = x*x;
        sum4 += W;
        float g = y*y;
        sum5 += g;
    }
    
    m= (a*sum1 - sum2*sum3)/(sum4-sum5);
    b= (sum3-sum2)/a;
    m = round(m * 1e3)/1e3;
    b = round(b * 1e3)/1e3;
    
    if (stri == "mb" )
    {
        cout << m << endl;
        cout << b << endl;
        }
    
    if (stri == "func" )
    {
        cout << "y = ";
        if (m==0)
        {cout << b << endl;}
        else if (m==1)
        {cout << "x" << endl;}
        else if (m==-1)
        {cout << "-x" << endl;}

        cout << m << "x";

        if (b!=0)
        {if (b<0)
        {cout << " " << "-" << " " << b <<endl;}
        else{cout << " " << "+" << " " << b <<endl;}
        }else{cout<<endl;}
        
        }
        return 0;
}
# 2071426, 2024-11-02 14:33:53, ---------- (0%)

#include <iostream>
#include<cmath>

using namespace std;

int main(){
    int a;
    string stri;
    float m,b;
    cin >> a >> stri;

    //double x,y;
    double xa[a];
    double ya[a];
    float sum1,sum2,sum3,sum4,sum5;

    for (int i = 0; i < a; i++)
    {
        cin >> xa[i];
        cin >> ya[i];
    }

    /*while (cin >> x )
    {
        cin >> y;

        float e = x*y;
        sum1 += e;

        sum2 += x;

        sum3 += y;

        float W = x*x;
        sum4 += W;

        float g = y*y;
        sum5 += g;
    }*/
    
    
    for(int i=0; i <a ;i++)
    {
        float e = xa[i]*ya[i];
        sum1 += e;

        sum2 += xa[i];

        sum3 += ya[i];

        float W = xa[i]*xa[i];
        sum4 += W;

        float g = ya[i]*ya[i];
        sum5 += g;
    }
    
    m= (a*sum1 - sum2*sum3)/(a*sum4-sum5);
    b= (sum3-sum2)/a;

    m = round(m * 1e3)/1e3;
    b = round(b * 1e3)/1e3;
    
    if (stri == "mb" )
    {
        cout << m << endl;
        cout << b << endl;
        }
    
    if (stri == "func" )
    {
        cout << "y = ";
        if (m==0)
        {cout << b << endl;}
        else if (m==1)
        {cout << "x" << endl;}
        else if (m==-1)
        {cout << "-x" << endl;}

        cout << m << "x";

        if (b!=0)
        {if (b<0)
        {cout << " " << "-" << " " << b <<endl;}
        else{cout << " " << "+" << " " << b <<endl;}
        }else{cout<<endl;}
        
        }
        return 0;
}

6733150821
# 2071370, 2024-11-02 14:28:26, Compilation error (0%)

#include <iostream>
using namespace std;
long long T(int n, int k){
        if(k == 0) return 1;
        if(k > 0) return 0;
        if(k >= 1) T(n, k-1)+ T(n-1,k);
}
long long S(int n){
    if(n == 0) return 1;
    if(n == 1) return 2;
    int sum = 3*S(n-1);
    for(int s = 0;s <= n-2;s++){
        sum += (s(k)s*(n-k-1));
    }
    return sum;

}
long long W(int n){
    if(n == 0) return 0;
    if(n == 1) return 1;
    for (int n = 0; n < 0;n++){
        sum  += (w(i)w*(n-i));
    } 
}
int main() {
string fn;
int p1, p2;
while (cin >> fn >> p1) {
if (fn == "T") {
cin >> p2;
cout << fn << '(' << p1 << ',' << p2 << ") = " << T(p1,p2) << endl;
} else if (fn == "S") {
cout << fn << '(' << p1 << ") = " << S(p1) << endl;
} else if (fn == "W") {
cout << fn << '(' << p1 << ") = " << W(p1) << endl;
}
}
return 0;
}