Submission #68925764
Source Code Expand
#include<iostream>
#include<vector>
using namespace std;
#define int long long
int Rt, Ct, Ra, Ca, N, M, L;
pair<int, int> getd(char ch)
{
if (ch == 'U') return {-1, 0};
if (ch == 'D') return {1, 0};
if (ch == 'L') return {0, -1};
if (ch == 'R') return {0, 1};
return {0, 0};
}
signed main()
{
cin >> Rt >> Ct >> Ra >> Ca >> N >> M >> L;
vector<pair<char, int>> segs(M);
for(int i=0;i<M;i++) cin >> segs[i].first >> segs[i].second;
vector<pair<char, int>> segt(L);
for(int i=0;i<L;i++) cin >> segt[i].first >> segt[i].second;
int dr = Rt - Ra;
int dc = Ct - Ca;
int ccc = 0;
int i = 0, j = 0;
while(i < M && j < L)
{
int k = min(segs[i].second, segt[j].second);
char chS = segs[i].first, chT = segt[j].first;
auto moveS = getd(chS);
auto moveT = getd(chT);
int delta_r = moveS.first - moveT.first, delta_c = moveS.second - moveT.second;
if(delta_r == 0 && delta_c == 0)
{
if (dr == 0 && dc == 0) ccc += k;
}
else
{
if(delta_r == 0)
{
if(dr == 0)
if(delta_c != 0 && (-dc) % delta_c == 0)
{
int x = -dc / delta_c;
if(x >= 1 && x <= k) ccc++;
}
}
else if(delta_c == 0)
{
if(dc == 0)
if(delta_r != 0 && (-dr) % delta_r == 0)
{
int x = -dr / delta_r;
if(x >= 1 && x <= k) ccc++;
}
}
else
{
if((-dr) % delta_r == 0 && (-dc) % delta_c == 0)
{
int x1 = -dr / delta_r, x2 = -dc / delta_c;
if(x1 == x2 && x1 >= 1 && x1 <= k) ccc++;
}
}
}
dr += k * delta_r; dc += k * delta_c;
segs[i].second -= k; segt[j].second -= k;
if(segs[i].second == 0) i++;
if(segt[j].second == 0) j++;
}
cout << ccc << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - RLE Moving |
| User | yangyang1000 |
| Language | C++ 20 (gcc 12.2) |
| Score | 425 |
| Code Size | 2231 Byte |
| Status | AC |
| Exec Time | 64 ms |
| Memory | 6472 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 425 / 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 | 62 ms | 6236 KiB |
| random_02.txt | AC | 39 ms | 4916 KiB |
| random_03.txt | AC | 12 ms | 4472 KiB |
| random_04.txt | AC | 25 ms | 4464 KiB |
| random_05.txt | AC | 11 ms | 3640 KiB |
| random_06.txt | AC | 64 ms | 6468 KiB |
| random_07.txt | AC | 61 ms | 6300 KiB |
| random_08.txt | AC | 62 ms | 6288 KiB |
| random_09.txt | AC | 60 ms | 6400 KiB |
| random_10.txt | AC | 59 ms | 6376 KiB |
| random_11.txt | AC | 62 ms | 6344 KiB |
| random_12.txt | AC | 62 ms | 6240 KiB |
| random_13.txt | AC | 62 ms | 6328 KiB |
| random_14.txt | AC | 63 ms | 6472 KiB |
| random_15.txt | AC | 61 ms | 6308 KiB |
| random_16.txt | AC | 60 ms | 6472 KiB |
| random_17.txt | AC | 61 ms | 6400 KiB |
| random_18.txt | AC | 62 ms | 6400 KiB |
| random_19.txt | AC | 60 ms | 6340 KiB |
| random_20.txt | AC | 60 ms | 6268 KiB |
| sample_01.txt | AC | 1 ms | 3532 KiB |
| sample_02.txt | AC | 1 ms | 3408 KiB |
| sample_03.txt | AC | 1 ms | 3536 KiB |
| sample_04.txt | AC | 1 ms | 3488 KiB |