CF328B Sheldon and Ice Pieces
题意:给定一个数字序列,问后面的数字元素能够组成最多的组数。
分析:把2和5,6和9看作是一个元素,然后求出一个最小的组数就可以了。
#include <cstdlib> #include <cstdio> #include <cstring> #include <iostream> #include <cctype> #include <algorithm> using namespace std; char obj[10000]; char str[10000]; int digit[15], rec[15]; inline int get(char ch) { if (ch == '5') return 2; else if (ch == '9') return 6; else return ch - '0'; } int main() { while (scanf("%s %s", obj, str) != EOF) { memset(digit, 0, sizeof (digit)); memset(rec, 0, sizeof (rec)); int len1 = strlen(obj), len2 = strlen(str); for (int i = 0; i < len1; ++i) { digit[get(obj[i])]++; } for (int i = 0; i < len2; ++i) { rec[get(str[i])]++; } int Min = 10000000; for (int i = 0; i < 10; ++i) { if (digit[i] > 0) { Min = min(Min, rec[i] / digit[i]); } } printf("%d\n", Min); } return 0; }