P9690题解

· · 题解

题意分析

题意:某程序设计竞赛自 y_1 年起开始举办。除了 s_1,s_2,\dots,s_nn 年由于特殊原因无法举办之外,其他年份每年举办一次。求 y_2 年是该竞赛的第几次举办。

分析:我们可以直接循环模拟年份,当年份与 s_1,s_2,\dots,s_n 中任意一个 s_i(i\leq n) 时,当前年份没有举办。直接累加即可,时间复杂度 O(Tn(y2-y1)),可以通过。

代码:

#include<bits/stdc++.h>
using namespace std;
int s[110];
int main(){
    int T;
    cin>>T;
    while(T--){
        int y1;
        cin>>y1;
        int n;
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>s[i];
        }
        int y2;
        cin>>y2;
        int ans=0;
        for(int i=y1;i<=y2;i++){
            bool f=0;
            for(int j=1;j<=n;j++){
                if(i==s[j]){
                    f=1;
                }

            }
            if(f)
                continue;
            ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}