「猫セット」ゲットチャレンジ!
paizaランクC相当問題
ある半角小文字アルファベット "c", "a", "t" で構成される文字列 S が与えられます。
文字列 Sに 含まれる "c", "a", "t" を1つずつ集め "cat" という文字列をあなたは作ろうとしています。
"cat" と完全に作れる個数、余った "c", "a", "t" から "cat" を作るのに必要なそれぞれの個数を求め
完全に作れる個数、必要な "c" の個数、必要な "a" の個数、必要な "t" の個数の順に改行区切りで出力して下さい。
例えば
ctacct
と入力された場合
c が 3文字 a が 1文字 t が 2文字
となり "cat" は1つ作ることができ、 "c" が2つ "t" が1つ余ります。
"a" があと 2つ、 "t" があと1つで2つの "cat" が作ることができるので
1
0
2
1
0
2
1
入力される値
入力は標準入力にて以下のフォーマットで与えられます。
S
入力値最終行の末尾に改行が1つ入ります。
条件
すべてのテストケースにおいて、以下の条件をみたします。
1 ≦ 文字列 S の長さ ≦ 100
S は半角小文字アルファベット "c", "a", "t" で構成された文字列
S は半角小文字アルファベット "c", "a", "t" で構成された文字列
期待する出力
文字列 S から "cat" と完全に作れる個数、余った "c", "a", "t" から "cat" を作るのに必要なそれぞれの個数を求め、完全に作れる個数、必要な "c" の個数、必要な "a" の個数、必要な "t" の個数の順に改行区切りで出力して下さい。
最後は改行し、余計な文字、空行を含んではいけません。
入力例1
入力ctacct
1
0
2
1
入力例2
入力cccc
0
0
4
4
oj网址:https://paiza.jp/poh/ando/mypage/c5894afb
拿到猫
的题目 这个oj的问题都不难 问题应该是在读题
这题的题意是给一串字符串 然后问当前字符串能组成多少个cat 输出
然后还要输出 c a t个数的最大值减去当前值
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <iomanip> #include <math.h> #include <map> using namespace std; #define FIN freopen("input.txt","r",stdin); #define FOUT freopen("output.txt","w",stdout); #define INFLL 0x3f3f3f3f3f3f3f #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 typedef long long LL; typedef pair<double, double> PII; int main() { //FIN char s[105]; while(cin >> s) { int c = 0, a = 0, t = 0; for(int i = 0; i < strlen(s); i++) { if(s[i] == 'c') c++; else if(s[i] == 'a') a++; else if(s[i] == 't') t++; } int minn = min(a, min(t, c)); int maxx = max(a, max(t, c)); cout << minn << endl; cout << maxx - c << endl; cout << maxx - a << endl; cout << maxx - t << endl; } return 0; }