#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S chmin( S & a, T b) {
if ( a> b) {
a= b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int maxNumberOfBalloons( string text) {
int i;
int res = 1073709056 ;
int c1[ 256 ] = { } ;
int c2[ 256 ] = { } ;
string str = "balloon" ;
res = 1073709056 ;
for ( i= 0 ; i< ( str.size ( ) ) ; i++ ) {
c2[ str[ i] ] ++ ;
}
for ( i= 0 ; i< ( text.size ( ) ) ; i++ ) {
c1[ text[ i] ] ++ ;
}
for ( i= 0 ; i< ( 256 ) ; i++ ) {
if ( c2[ i] ) {
chmin( res, c1[ i] / c2[ i] ) ;
}
}
return res;
}
}
;
// cLay varsion 20190914-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int maxNumberOfBalloons(string text) {
// int res = int_inf;
// int c1[256] = {}, c2[256] = {};
// string str = "balloon";
//
// res = int_inf;
// rep(i,str.size()) c2[str[i]]++;
// rep(i,text.size()) c1[text[i]]++;
//
// rep(i,256) if(c2[i]) res <?= c1[i] / c2[i];
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIGNobWluKFMgJmEsIFQgYil7CiAgaWYoYT5iKXsKICAgIGE9YjsKICB9CiAgcmV0dXJuIGE7Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgaW50IG1heE51bWJlck9mQmFsbG9vbnMoc3RyaW5nIHRleHQpewogICAgaW50IGk7CiAgICBpbnQgcmVzID0gMTA3MzcwOTA1NjsKICAgIGludCBjMVsyNTZdID0ge307CiAgICBpbnQgYzJbMjU2XSA9IHt9OwogICAgc3RyaW5nIHN0ciA9ICJiYWxsb29uIjsKICAgIHJlcyA9IDEwNzM3MDkwNTY7CiAgICBmb3IoaT0wO2k8KHN0ci5zaXplKCkpO2krKyl7CiAgICAgIGMyW3N0cltpXV0rKzsKICAgIH0KICAgIGZvcihpPTA7aTwodGV4dC5zaXplKCkpO2krKyl7CiAgICAgIGMxW3RleHRbaV1dKys7CiAgICB9CiAgICBmb3IoaT0wO2k8KDI1Nik7aSsrKXsKICAgICAgaWYoYzJbaV0pewogICAgICAgIGNobWluKHJlcywgYzFbaV0gLyBjMltpXSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXM7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMTkwOTE0LTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgaW50IG1heE51bWJlck9mQmFsbG9vbnMoc3RyaW5nIHRleHQpIHsKLy8gICAgIGludCByZXMgPSBpbnRfaW5mOwovLyAgICAgaW50IGMxWzI1Nl0gPSB7fSwgYzJbMjU2XSA9IHt9OwovLyAgICAgc3RyaW5nIHN0ciA9ICJiYWxsb29uIjsKLy8gCi8vICAgICByZXMgPSBpbnRfaW5mOwovLyAgICAgcmVwKGksc3RyLnNpemUoKSkgYzJbc3RyW2ldXSsrOwovLyAgICAgcmVwKGksdGV4dC5zaXplKCkpIGMxW3RleHRbaV1dKys7Ci8vIAovLyAgICAgcmVwKGksMjU2KSBpZihjMltpXSkgcmVzIDw/PSBjMVtpXSAvIGMyW2ldOwovLyAgICAgcmV0dXJuIHJlczsKLy8gICB9Ci8vIH07Cg==