Submission

Status:

PPPPP

Subtask/Task Score:

100/100

Score: 100

User: KurtCobain

Problemset: กังหันสี่ทิศ

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-02 17:06:31

#include <iostream>
#include <vector>
using namespace std;

int main(){
    int n;
    cin >> n;
    string alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    vector<int> gen_between = {};
    vector<char> characters_use = {};
    int p=1;
    gen_between.push_back(0);
    for (int i=0;i<n;i++){ // Add Betweens
        gen_between.push_back(p);
        p+=2;
    }
    for (int x=0;x<n;x++){ // Add Char
        characters_use.push_back(alphabets[x]);
    }
    // Init Vars
    int lastIndexChar = characters_use.size()-1;
    int lastIndexBetween =gen_between.size()-2;
    int LastIndexBetweenOut = 1;
    // Top
    for (int i=0;i<n;i++){
      string left = "";
      string right = "";
      string mixed = "";
      for (int g=0;g<i;g++){
        left+=" ";
      }
      left+= characters_use[lastIndexChar];
      right+="*";
      for (int b=0;b<gen_between[lastIndexBetween];b++){
       left+=" ";
       right+=" ";
      }
      if (i < n-1){
        left+=characters_use[lastIndexChar];
        right+="*";
      }
      mixed+=left;
      for (int z=0;z<gen_between[LastIndexBetweenOut];z++){
        mixed += " ";
      }
      mixed+=right;
      cout << mixed << '\n';
      lastIndexChar--;
      lastIndexBetween--;
      LastIndexBetweenOut++;
    }
    gen_between.pop_back();
    int FirstIndexChar = 1;
    int FirstIndexBetween = 1;
    int firstIndexBetweenOut = gen_between.back();
    // Bottom
     for (int i=0;i<n-1;i++){
      string left = "";
      string right = "";
      string mixed = "";
      for (int g=n-2;g>i;g--){
        left+=" ";
      }
      left+= characters_use[FirstIndexChar];
      right+="*";
      for (int b=0;b<gen_between[FirstIndexBetween];b++){
       left+=" ";
       right+=" ";
      }
      if (i < n-1){
        left+=characters_use[FirstIndexBetween];
        right+="*";
      }
      mixed+=left;
      for (int z=firstIndexBetweenOut;z>0;z--){
        mixed += " ";
      }
      mixed+=right;
      cout << mixed << '\n';
      FirstIndexChar++;
      FirstIndexBetween++;
      firstIndexBetweenOut-=2;
    }
}