K12850 质量检测

98 篇文章 1 订阅
10 篇文章 0 订阅

题目描述

小科的妈妈在质检局工作,根据工作安排,今天她要去红星零件厂检查某种新型零件的合格率是否满足国家规定的质量要求。小科的妈妈和以往一样,带了一个长度为k的放大镜,可以一次性检测k个零件,原本红星修理厂该零件一批次只会生产k个,但是由于疫情期间贸易交通不便,红星修理厂一共积压了n(n大于k)个该零件,n个零件呈一条直线排列在车间里,每个零件按质量分等级,最高为S,接着往下是A,B,C,D,E,F,根据国家规定,质量等级达到某个等级的零件被认为是合格零件。小科的妈妈利用她带来的放大镜,只检测一次连续的k个零件 , 问她这一次检测最大的合格率是多少(合格率为合格零件数量/检测的零件数量)。

输入格式

输入共四行

第一行 一个整数,表示待检测零件数量n(10<=n<=1000);

第二行 n个字符,分别n个零件的质量等级(质量等级从高到低为S,A,B,C,D,E,F,全为大写字母且不包含空格);

第三行 一个字符表示合格零件的质量等级要求(可能值为S,A,B,C,D,E,F);

第四行 一个整数表示小科妈妈放大镜的长度k(5<=k<=10);

输出格式

输出一行,输出小科妈妈这一次检测最大的合格率(结果保留两位小数)

输入输出样例

输入样例1:
20
SSFDDBCCAFEEDACCBSSD
C
10
输出样例1:
0.60

说明

检测 SSFDDBCCAF这一段,合格零件个数为6个,检测个数为 10个,合格率为0.60

【耗时限制】1000ms 【内存限制】256MB

#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<sstream>
using namespace std;
int main()
{
    int n,k,cnt=0;
    double maxn=0;
    string s;
    char c;
    cin>>n>>s>>c>>k;
    for(int i=0;i<s.size()-(k-1);i++)
    {
        cnt=0;
        for(int j=i;j<i+k;j++)
        {
            if(s[j]=='S'||(c!='S'&&s[j]<=c)) cnt++;
        }
        if(cnt*1.0/k>maxn) maxn=cnt*1.0/k;
    }
    printf("%.2lf",maxn);
    return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值