Submission #68935714
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct node
{
    char x;
    int t;
};
vector<node> a,b;
int side(char s)
{
    if(s=='U'||s=='D')
        return 1;
    return -1;
}
int w(char s)
{
    if(s=='D'||s=='R')return 1;
    return -1;
}
int sgn(int x)
{
    if(x>0)return 1;
    if(x<0)return -1;
    return 0;
}
signed main() 
{
    int nx,ny,mx,my;
    cin>>nx>>ny>>mx>>my;
    int n,m,l;cin>>n>>m>>l;
    for(int i=1;i<=m;i++)
    {
        char x;int t;cin>>x>>t;
        if(i-1)t+=a.back().t;
        a.push_back((node){x,t});
    }
    for(int i=1;i<=l;i++)
    {
        char x;int t;cin>>x>>t;
        if(i-1)t+=b.back().t;
        b.push_back((node){x,t});
    }
    int t1=0,t2=0;
    int now=0;//当前时间
    int ans=0;
    while(t1<m&&t2<l)
    {
        if(side(a[t1].x)!=side(b[t2].x))
        {
            if(nx==mx||ny==my);
            else{
            int ls=side(a[t1].x)==1?-w(a[t1].x):w(b[t2].x);
            int rs=side(a[t1].x)==-1?-w(a[t1].x):w(b[t2].x);
            if(abs(nx-mx)==abs(ny-my)&&abs(nx-mx)<=(min(a[t1].t,b[t2].t)-now)&&sgn(nx-mx)==ls&&sgn(ny-my)==rs)
                ans++;
            }
        }
        else
        {
            if(w(a[t1].x)==w(b[t2].x)&&nx==mx&&ny==my)
                ans+=min(a[t1].t,b[t2].t)-now;
            else if(side(a[t1].x)==1?ny==my:nx==mx)
            {
                if(nx==mx&&ny==my);
                else if((abs(nx-mx)+abs(ny-my))%2==0&&w(a[t1].x)!=w(b[t2].x)&&(min(a[t1].t,b[t2].t)-now)*2>=(abs(nx-mx)+abs(ny-my)))
                    ans++;
            }
        }
        if(side(a[t1].x)==1)nx+=(min(a[t1].t,b[t2].t)-now)*w(a[t1].x);
        else ny+=(min(a[t1].t,b[t2].t)-now)*w(a[t1].x);
        if(side(b[t2].x)==1)mx+=(min(a[t1].t,b[t2].t)-now)*w(b[t2].x);
        else my+=(min(a[t1].t,b[t2].t)-now)*w(b[t2].x);
        now=min(a[t1].t,b[t2].t);
        if(a[t1].t<b[t2].t)t1++;
        else if(a[t1].t>b[t2].t)t2++;
        else t1++,t2++;
    }
    cout<<ans<<'\n';
    return 0;
}
			Submission Info
| Submission Time | |
|---|---|
| Task | D - RLE Moving | 
| User | anke | 
| Language | C++ 20 (gcc 12.2) | 
| Score | 0 | 
| Code Size | 2092 Byte | 
| Status | WA | 
| Exec Time | 63 ms | 
| Memory | 7956 KiB | 
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 425 | ||||||
| Status | 
 | 
 | 
| Set Name | Test Cases | 
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt | 
| All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt | 
| Case Name | Status | Exec Time | Memory | 
|---|---|---|---|
| random_01.txt | AC | 63 ms | 7804 KiB | 
| random_02.txt | AC | 39 ms | 5768 KiB | 
| random_03.txt | AC | 13 ms | 5260 KiB | 
| random_04.txt | AC | 25 ms | 5332 KiB | 
| random_05.txt | AC | 12 ms | 3812 KiB | 
| random_06.txt | WA | 62 ms | 7864 KiB | 
| random_07.txt | WA | 63 ms | 7876 KiB | 
| random_08.txt | WA | 63 ms | 7932 KiB | 
| random_09.txt | WA | 60 ms | 7956 KiB | 
| random_10.txt | WA | 60 ms | 7792 KiB | 
| random_11.txt | WA | 63 ms | 7864 KiB | 
| random_12.txt | WA | 62 ms | 7888 KiB | 
| random_13.txt | WA | 63 ms | 7836 KiB | 
| random_14.txt | WA | 63 ms | 7892 KiB | 
| random_15.txt | AC | 61 ms | 7860 KiB | 
| random_16.txt | AC | 61 ms | 7804 KiB | 
| random_17.txt | WA | 63 ms | 7808 KiB | 
| random_18.txt | AC | 62 ms | 7776 KiB | 
| random_19.txt | AC | 62 ms | 7928 KiB | 
| random_20.txt | AC | 61 ms | 7832 KiB | 
| sample_01.txt | AC | 1 ms | 3532 KiB | 
| sample_02.txt | AC | 1 ms | 3676 KiB | 
| sample_03.txt | AC | 1 ms | 3532 KiB | 
| sample_04.txt | AC | 1 ms | 3412 KiB |