#include #include using namespace std;

int main() { int T, N, M; cin >> T >> N; vector A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } cin >> M; vector B(M); for (int i = 0; i < M; i++) { cin >> B[i]; }

int j = 0;
for (int i = 0; i < M; i++) {
    if (B[i] < A[j] || B[i] > A[j] + T) {
        cout << 'no' << endl;
        return 0;
    }
    while (j < N && A[j] + T < B[i]) {
        j++;
    }
    if (j == N) {
        cout << 'no' << endl;
        return 0;
    }
    j++;
}

cout << 'yes' << endl;

return 0;

}

这段代码是一个简单的程序,用于判断一组时间段内的事件是否按照指定要求发生。代码首先读取输入的T、N和M,分别代表时间段的长度、事件A的数量和事件B的数量。然后,代码依次读取事件A和事件B的具体时间。接下来,代码使用两个指针j和i来遍历事件A和事件B的时间。代码通过比较B[i]和A[j]的值判断事件B是否在事件A的时间段内。如果B[i]小于A[j]或者B[i]大于A[j]+T,则输出'no',表示不满足要求。否则,代码通过移动指针j来查找下一个事件A的时间段。如果j达到了A的末尾,说明事件B发生的时间超出了所有事件A的时间段,也不满足要求,输出'no'。最后,如果所有的事件B都满足要求,输出'yes'。


原文地址: http://www.cveoy.top/t/topic/pH1u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录