P9690 [GDCPC2023] Programming Contest 题解

· · 题解

思路

首先我们知道,第 x 年到第 y 年一共有 y-x+1 年,也就是举办了 y-x+1 场比赛,不妨设这个数为 z

然后我们可以按顺序枚举停办年份,每枚举到一个小于 y 的停办年份,z(举办比赛的次数)就减一,由于题目中保证停办年份按升序给出,所以当遇到第一个大于 y 的停办年份,就说明后面的停办年份都大于 y,对答案没有影响,就可以结束统计。

代码:

# include <bits/stdc++.h>
using namespace std;
int arr[110];
int main(){
    int t;
    cin>>t;
    for(int i=0;i<t;i++){
        int x,y,n;
        cin>>x>>n;
        for(int j=0;j<n;j++){
            cin>>arr[j];
        }
        cin>>y;
        int ans=y-x+1;
        for(int j=0;j<n&&arr[j]<y;j++){
            ans--;
        }
        cout<<ans<<endl;
    }
}