LINUX.ORG.RU

История изменений

Исправление wota, (текущая версия) :

#include <cstdio>
#include <map>

int main() {
    std::map<int,int> stack;
    int homos=0, n, i;
    char buf[20];
    
    scanf("%d",&n);
    while(n--) {
        scanf("%s %d", &buf, &i);
        if(*buf == 'i')
            if(stack[i]++) ++homos;
        else if(stack.count(i))
            --stack[i] ? --homos : stack.erase(i);

        puts(stack.size() > 1 ? homos ? "both" : "hetero" : homos ? "homo" : "neither");
    }
}

не до конца прилизал код quasimoto, вот более простая версия

Исправление wota, :

#include <cstdio>
#include <map>

int main() {
    std::map<int,int> stack;
    int homos=0, n, i;
    char buf[20];
    
    scanf("%d",&n);
    do {
        scanf("%s %d", &buf, &i);
        if(*buf == 'i')
            if(stack[i]++) ++homos;
        else if(stack.count(i))
            --stack[i] ? --homos : stack.erase(i);

        puts(stack.size() > 1 ? homos ? "both" : "hetero" : homos ? "homo" : "neither");
    } while (--n);
}

не до конца прилизал код quasimoto, вот более простая версия

Исходная версия wota, :

#include <cstdio>
#include <map>

int main() {
    std::map<int,int> stack;
    int homos=0, n, i;
    char buf[20];
    
    scanf("%d",&n);
    do {
        scanf("%s %d", &buf, &i);
        if(*buf == 'i')
            if(stack[i]++) ++homos;
        else if(stack.count(i))
            --stack[i] ? --homos : stack.erase(i);

        puts(stack.size() > 1 ? homos ? "both" : "hetero" : homos ? "homo" : "neither");
    } while (--n);
}

не доконца прилизал код quasimoto, вот более простая версия