KUPC 2011 A: KUPC

問題概要

文字列が与えられる(strlen < 300)。その中からK,U,P,Cという文字を使ってKUPCという文字列をいくつ作ることができるか求める問題。

考えたこと

  • minとるだけに見える。
  • A問題だし罠とかないよね。
  • 個人戦でのオンサイト参加は初めてで、緊張感からタイポ連発したけど無事通った。

本番で通ったコード

計算量O(strlen)。

#include <cstdio>
#include <algorithm>
using namespace std;

char buf[309];
const int INF = 1<<29;

int main(){
	scanf("%s", buf);

	//K, U, P, Cをカウントする
	int K=0, U=0, P=0, C=0;
	for(int i=0; buf[i]; i++){
		char ch = buf[i];
		if( ch == 'K') K++;
		if( ch == 'U') U++;
		if( ch == 'P') P++;
		if( ch == 'C') C++;
	}

	int ans = INF;
	ans = min(ans, K);
	ans = min(ans, U);
	ans = min(ans, P);
	ans = min(ans, C);

	printf("%d\n", ans);

	return 0;
}