meherun

 avatar
unknown
c_cpp
3 years ago
1.0 kB
5
Indexable
#include <bits/stdc++.h>
using namespace std;

const int N = 2069;
char word[N][N];

bool isAlphabetic(char ch) {
    if(ch >= 'a' and ch <= 'z') return true;
    if(ch >= 'A' and ch <= 'Z') return true;
    return false;
}

bool _strcmp(char u[], char v[]) {
    int len_u = strlen(u);
    int len_v = strlen(v);
    for(int i = 0; i < min(len_u, len_v); ++i) {
        if(u[i] < v[i]) return true;
        if(u[i] > v[i]) return false;
    }
    return len_u <= len_v;
}

int main() {
    char ch;
    int n = -1;
    for(int i = -1, j = 0; scanf("%c", &ch) != EOF;) {
        if(isAlphabetic(ch)) {
            if(j == 0) ++i;
            word[i][j++] = ch;
            n = i + 1;
        }
        else j = 0;
    }
    for(int i = 0; i < n; ++i) {
        for(int j = i + 1; j < n; ++j) {
            if(!_strcmp(word[i], word[j])) {
                swap(word[i], word[j]);
            }
        }
    }
    for(int i = 0; i < n; ++i) {
        printf("%s ", word[i]);
    }
    printf("\n");
}
Editor is loading...