Uva 10393 The One-Handed Typist Solution
Problem Link
Uva 10393 The One-Handed Typist Solution
#include<bits/stdc++.h>
using namespace std;
int fn[128];
bool fc[11];
void setup()
{
fn['q']=fn['a']=fn['z']=1;
fn['w']=fn['s']=fn['x']=2;
fn['e']=fn['d']=fn['c']=3;
fn['r']=fn['f']=fn['v']=fn['t']=fn['g']=fn['b']=4;
fn['y']=fn['h']=fn['n']=fn['u']=fn['j']=fn['m']=7;
fn['i']=fn['k']=fn[',']=8;
fn['o']=fn['l']=fn['.']=9;
fn['p']=fn[';']=fn['/']=10;
}
bool possible(string s)
{
for(string::iterator it=s.begin(); it!=s.end();it++)
{
if(!fc[fn[*it]])
return false;
}
return true;
}
int main()
{
int f,n;
setup();
while(cin>>f>>n)
{
int i,a;
for( i=0;i<=10;i++)
fc[i]=true;
while(f--)
{
cin>>a;
fc[a]=false;
}
int max=0;
set<string>bs;
string s;
while(n--)
{
cin>>s;
if(s.size()>max && possible(s))
{
max=s.size();
bs.clear();
bs.insert(s);
}
else if(s.size()==max && possible(s))
bs.insert(s);
}
cout<<bs.size()<<endl;
vector<string>v(bs.begin(),bs.end());
vector<string> :: iterator it;
for(it=v.begin();it!=v.end();it++)
{
cout<<*it<<endl;
}
}
return 0;
}
No comments