Submission

Status:
----------

Score: 0

User: solarsunny

Problemset: ลำแสงเลเซอร์สะท้อน

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-14 23:45:04

#include <bits/stdc++.h>
using namespace std;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int n,m = 0;
    cin >> n >> m;
    int red[n];
    for(int i=0; i<n; i++) {
        cin >> red[i];
    }
    int blue[m];
    for(int i=0; i<m; i++) {
        cin >> blue[i];
    }

    int r=0;
    int b=0;

    int c=1;

    int prevr=0;
    int prevb = 0;

    for(r=0; r<n; prevr=red[r], r++) {
        while(b<m && (blue[b] <= red[r])) {
            if(r%2 == b%2) {
                if((prevb > prevr)) {
                    // cout << "1->" << prevb << "-" << blue[b] << "x" << prevr << "-" << red[r] << endl;
                    c++;
                }
            } else {
                // cout << "2->" << prevb << "-" << blue[b] << "x" << prevr << "-" << red[r] << endl;
                c++;
            }
            prevb = blue[b];
            b++;
        }

        // last blue 
        if ((r%2 != b%2) && (prevb < red[r])) {
            // cout << "3->" << prevb << "-" << blue[b] << "x" << prevr << "-" << red[r] << endl;
            c++;
            prevb = blue[b];
            b++;
        }

       //cout << c << endl;
        if(b>=m) {
            break;
        }
    }
    cout << c << endl;
    return 0;
}