永发信息网

pascal题目,快快回答

答案:1  悬赏:40  手机版
解决时间 2021-08-25 10:07
  • 提问者网友:贪了杯
  • 2021-08-24 11:30

实战训练3

B做前4题(3小时),A做5题(3.5小时)

Problem 1:苹果配对(pair)

源文件名:pair.(pas/c/cpp)

输入文件:pair.in

输出文件:pair.out

时间限制:1秒

空间限制:64M

背景

xiaoT发现前面有n个苹果排在那里 (怎么会有这么多苹果?它回到了他的故乡?!),他仔细的看了一遍,发现所有的苹果被分成了四种:A,a,B,b。其中A,a是红色的,B,b是青色的。xiaoT 观察了一会儿,发现苹果们在玩配对游戏。配对的规则就像是括号配对一样:

A就像是(

a就像是)

B就像是[

b就像是]

Aa之间可以夹着Bb。Bb之间也可以夹着Aa。

只有Aa可以配对aA是不能配对的,bB也是不能配对的。

但是苹果们不一定能配对成功,xiaoT想:至少要加几个苹果才能让苹果们恰好配对。

输入格式

第一行是一个正整数n表示苹果的个数

第二行是一个n位的串,表示苹果的类型,行尾没有多余的空格

输出格式

输出只有一个数,最少添加的苹果

样例输入1:pair.in

3
ABb

样例输出1:pair.out

1

样例解释

AaBb或者ABba

样例输入2:pair.in

4

ABab

样例输出2:pair.out

2

数据规模

对于30%的数据,n≤10

对于100%的数据,n≤100


最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-08-24 11:38
var a:array[1..10000] of char;b:array[1..10000] of integer;
   i,j,k,m,n,max:integer;
begin
  assign(input,'pair.in');reset(input);
  assign(output,'pair.out');rewrite(output);
  readln(n);j:=0;max:=0;
  fillchar(b,sizeof(b),0);
  for i:=1 to n do
   read(a[i]);
  for i:=1 to n do
    if (a[i]='A') and (b[i]=0) then
    for j:=i+1 to n do
    if (a[j]='a') and (b[j]=0) then
    begin
    max:=max+1;
    b[i]:=1;b[j]:=1;
    end;
  for i:=1 to n do
    if (a[i]='B') and (b[i]=0) then
    for j:=i+1 to n do
    if (a[j]='b') and (b[j]=0) then
    begin
    max:=max+1;
    b[i]:=1;b[j]:=1;
    end;
  writeln(max);
  close(input);close(output);
end.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯