#include <iostream>
//#include <fstream>
#include <string>
#include <ctype.h>
using namespace std;
//New portion
int main( int argc, char * argv[ ] ) {
//File Paths
//ifstream fp;
istream & fp = cin ;
//fp.open(argv[1]);
//if (!fp.is_open()) {
// cout << "Error No file" << endl;
// return 0;
//}
string wordArr[ 10000 ] ;
string words;
string temp;
int wordCount = 0 ;
while ( ( fp >> words) && ( wordCount < 10000 ) ) {
for ( int i = 0 ; i < words.length ( ) ; ++ i) {
if ( ! isalpha ( words[ i] ) ) {
wordArr[ wordCount++ ] = words.substr ( 0 , i) ;
if ( wordCount == 10000 ) break ;
++ i;
while ( ( i < words.length ( ) ) && ( ! isalpha ( words[ i] ) ) ) {
++ i;
}
words.erase ( 0 , i) ;
i = - 1 ;
}
}
if ( words.length ( ) > 0 ) {
wordArr[ wordCount++ ] = words;
}
}
cout << "Number of words found was: " << wordCount << endl;
// makes all lower
for ( int k= 0 ; k< wordCount; k++ ) { //need to find size of array
for ( int l= 0 ; l< wordArr[ k] .length ( ) ; l++ ) {
wordArr[ k] [ l] = tolower ( wordArr[ k] [ l] ) ;
}
}
//unique count
string tempArr[ 10000 ] ;
int unique= 0 ;
for ( int m= 0 ; m< wordCount; m++ ) {
int oldWord= 0 ;
for ( int n = 0 ; n < unique; n++ ) {
if ( wordArr[ m] == tempArr[ n] ) {
oldWord = 1 ;
break ;
}
}
if ( oldWord== 0 ) {
tempArr[ unique++ ] = wordArr[ m] ;
}
}
cout << "Unique word count is: " << unique << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgovLyNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3R5cGUuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vTmV3IHBvcnRpb24KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewogICAgLy9GaWxlIFBhdGhzCiAgICAvL2lmc3RyZWFtIGZwOwogICAgaXN0cmVhbSAmZnAgPSBjaW47CiAgICAvL2ZwLm9wZW4oYXJndlsxXSk7CiAgICAvL2lmICghZnAuaXNfb3BlbigpKSB7CiAgICAvLyAgICBjb3V0IDw8ICJFcnJvciBObyBmaWxlIiA8PCBlbmRsOwogICAgLy8gICAgcmV0dXJuIDA7CiAgICAvL30KCiAgICBzdHJpbmcgd29yZEFyclsxMDAwMF07CiAgICBzdHJpbmcgd29yZHM7CiAgICBzdHJpbmcgdGVtcDsKICAgIGludCB3b3JkQ291bnQgPSAwOwogICAgd2hpbGUgKChmcCA+PiB3b3JkcykgJiYgKHdvcmRDb3VudCA8IDEwMDAwKSkgewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoKCk7ICsraSkgewogICAgICAgICAgICBpZiAoIWlzYWxwaGEod29yZHNbaV0pKSB7CiAgICAgICAgICAgICAgICB3b3JkQXJyW3dvcmRDb3VudCsrXSA9IHdvcmRzLnN1YnN0cigwLCBpKTsKICAgICAgICAgICAgICAgIGlmICh3b3JkQ291bnQgPT0gMTAwMDApIGJyZWFrOwogICAgICAgICAgICAgICAgKytpOwogICAgICAgICAgICAgICAgd2hpbGUgKChpIDwgd29yZHMubGVuZ3RoKCkpICYmICghaXNhbHBoYSh3b3Jkc1tpXSkpKSB7CiAgICAgICAgICAgICAgICAgICAgKytpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgd29yZHMuZXJhc2UoMCwgaSk7CiAgICAgICAgICAgICAgICBpID0gLTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHdvcmRzLmxlbmd0aCgpID4gMCkgewogICAgICAgICAgICB3b3JkQXJyW3dvcmRDb3VudCsrXSA9IHdvcmRzOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgIk51bWJlciBvZiB3b3JkcyBmb3VuZCB3YXM6ICIgPDwgd29yZENvdW50IDw8IGVuZGw7CgogICAgLy8gbWFrZXMgYWxsIGxvd2VyCiAgICBmb3IoaW50IGs9MDsgazx3b3JkQ291bnQ7aysrKXsgLy9uZWVkIHRvIGZpbmQgc2l6ZSBvZiBhcnJheQogICAgICAgIGZvcihpbnQgbD0wOyBsPHdvcmRBcnJba10ubGVuZ3RoKCk7IGwrKyl7CiAgICAgICAgICAgIHdvcmRBcnJba11bbF0gPSB0b2xvd2VyKHdvcmRBcnJba11bbF0pOwogICAgICAgIH0KICAgIH0KCiAgICAvL3VuaXF1ZSBjb3VudAogICAgc3RyaW5nIHRlbXBBcnJbMTAwMDBdOwogICAgaW50IHVuaXF1ZT0wOwogICAgZm9yKGludCBtPTA7IG08d29yZENvdW50O20rKyApIHsKICAgICAgICBpbnQgb2xkV29yZD0wOwogICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgdW5pcXVlOyBuKyspIHsKICAgICAgICAgICAgaWYgKHdvcmRBcnJbbV0gPT0gdGVtcEFycltuXSkgewogICAgICAgICAgICAgICAgb2xkV29yZCA9IDE7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihvbGRXb3JkPT0wKXsKICAgICAgICAgICAgdGVtcEFyclt1bmlxdWUrK10gPSB3b3JkQXJyW21dOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgIlVuaXF1ZSB3b3JkIGNvdW50IGlzOiAiIDw8IHVuaXF1ZSA8PCBlbmRsOwp9
stdin
Q3J5cHRvZ3JhcGh5IGlzIGJvdGggdGhlIHByYWN0aWNlIGFuZCBzdHVkeSBvZiB0aGUgdGVjaG5pcXVlcyB1c2VkIHRvIGNvbW11bmljYXRlIGFuZC9vciBzdG9yZSBpbmZvcm1hdGlvbiBvciBkYXRhIHByaXZhdGVseSBhbmQgc2VjdXJlbHksIHdpdGhvdXQgYmVpbmcgaW50ZXJjZXB0ZWQgYnkgdGhpcmQgcGFydGllcy4gVGhpcyBjYW4gaW5jbHVkZSBwcm9jZXNzZXMgc3VjaCBhcyBlbmNyeXB0aW9uLCBoYXNoaW5nLCBhbmQgc3RlZ2Fub2dyYXBoeS4gVW50aWwgdGhlIG1vZGVybiBlcmEsIGNyeXB0b2dyYXBoeSBhbG1vc3QgZXhjbHVzaXZlbHkgcmVmZXJyZWQgdG8gZW5jcnlwdGlvbiwgYnV0IG5vdyBjcnlwdG9ncmFwaHkgaXMgYSBicm9hZCBmaWVsZCB3aXRoIGFwcGxpY2F0aW9ucyBpbiBtYW55IGNyaXRpY2FsIGFyZWFzIG9mIG91ciBsaXZlcy4=
Cryptography is both the practice and study of the techniques used to communicate and/or store information or data privately and securely, without being intercepted by third parties. This can include processes such as encryption, hashing, and steganography. Until the modern era, cryptography almost exclusively referred to encryption, but now cryptography is a broad field with applications in many critical areas of our lives.