CodeFoeces-721B

题目

原题链接:B. Passwords

题意

有n个密码,每次输入需要1s,每输错k次则等待5s,第n+1行是正确密码。问最好情况下和最坏情况下需要几秒登入。根据密码长度排序后挨个输入即可,数据量较小不会超时。

代码

#include<bits/stdc++.h>
using namespace std;
struct node {
    string word;
    int len;
} s[110];
int cmp(node a,node b) {
    return a.len<b.len;
}
int main() {
    int n,k;
    int minn=0,maxx=0;
    string cur;
    scanf("%d%d",&n,&k);
    for(int i=1; i<=n; i++) {
        cin>>s[i].word;
        s[i].len=s[i].word.size();
    }
    cin>>cur;
    sort(s+1,s+n+1,cmp);
    if(s[0].len>=cur.size()) {
        minn=1;
    } else {
        for(int i=1; s[i].len<cur.size() && i<=n; i++) {
            minn++;
            if(i%k==0 && s[i].word!=cur) {
                minn+=5;
            }
//          printf("%d->%d\n",i,minn);
        }
        minn++;
    }
    int i;
    for(i=1; s[i].len<=cur.size() && i<=n; i++) {
        maxx++;
        if(i%k==0) {
            maxx+=5;
        }
//      printf("%d->%d\n",i,maxx);
    }
    if(--i%k==0){
        maxx-=5;
    }
    printf("%d %d\n",minn,maxx);
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容