суббота, 7 января 2012 г.

One-word convention

#include <fstream>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
    vector<string> dic;

    if (argc != 2) {
        cerr << "You must specify vocabulary (E.g. c:\\voc.txt)\n";
        return 33;
    }
    ifstream a(argv[1]);
    char b[256];
    while (a.getline(b, sizeof b))
        dic.push_back(string(b));

    string secret = "overturnedcomma";

    for (int w=0; w < dic.size(); w++)
    {
        int w_len = dic[w].size();
        int f;

        char *flags = new char[w_len];
        for (f=0; f < w_len; f++)
            flags[f] = '-';

        string word = dic[w];

        int secr_len = secret.size();

        for (int n=0; n < secr_len; n++)
        {
            char d = secret[n];
            for (int s=0; s < w_len; s++)
            {
                if (word[s] == d && flags[s] == '-')
                {
                    flags[s] = 'x';
                    break;
                }
            }
        }

        int Accumulator = 0;

        for (f=0; f < w_len; f++)
            Accumulator += (int) ( flags[f] == 'x' ) ;

        if (Accumulator == w_len)
            cout << word << endl;

        delete[] flags;
    }
}

Комментариев нет:

Отправить комментарий