Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Airport Codes"
https://onlinejudge.u-aizu.ac.jp/problems/2700
・空港コード
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume27 - 2700 : Airport Codes
/* Aizu Online Judge in C++ #Volume27 - 2700 : Airport Codes https://onlinejudge.u-aizu.ac.jp/problems/2700 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; ll n; string s[55]; string f(){ string s; cin>>s; string t=""; t+=s[0]; for(ll i=0;i+1<s.size();i++){ if(s[i]=='a' || s[i]=='i' || s[i]=='u' || s[i]=='e' || s[i]=='o'){ t+=s[i+1]; } } return t; } int main(void){ while(cin>>n,n){ ll m=0; for(ll i=0;i<n;i++){ s[i]=f(); m=(m<s[i].size() ? s[i].size() : m); } ll k; for(k=1;k<=m;k++){ bool tf=1; map<string,ll> mp; for(ll i=0;i<n;i++){ tf&=!mp[s[i].substr(0,k)]++; } if(tf){ break; } } cout<<(k<=m ? k : -1)<<endl; } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/