SHARE
TWEET

Роман и Тошибки

IzhanVarsky Mar 19th, 2019 82 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <set>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     ifstream cin("broken-keyboard.in");
  8.     ofstream cout("broken-keyboard.out");
  9.     set<string> words;
  10.     int n;
  11.     cin >> n;
  12.     for (int i = 0; i < n; ++i) {
  13.         set<char> usedSymbolsInWord;
  14.         string s;
  15.         cin >> s;
  16.         bool flag = false;
  17.         string pref;
  18.         for (unsigned int j = 0; j < s.length(); ++j) {
  19.             if (usedSymbolsInWord.count(s[j]) != 0) {
  20.                 if (words.count(pref) == 0) {
  21.                     for (unsigned int k = j; k < s.length(); ++k) {
  22.                         words.insert(pref + s[k]);
  23.                         pref += s[k];
  24.                     }
  25.                     flag = true;
  26.                     break;
  27.                 } else {
  28.                     break;
  29.                 }
  30.             } else if (words.count(pref + s[j]) == 0) {
  31.                 for (unsigned int k = j; k < s.length(); ++k) {
  32.                     words.insert(pref + s[k]);
  33.                     pref += s[k];
  34.                 }
  35.                 flag = true;
  36.                 break;
  37.             }
  38.             usedSymbolsInWord.insert(s[j]);
  39.             pref += s[j];
  40.         }
  41.         if (flag) {
  42.             cout << "YES\n";
  43.         } else {
  44.             cout << "NO\n";
  45.         }
  46.     }
  47.     return 0;
  48. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top