Submission #674767
Source Code Expand
#include <algorithm>
#include <array>
#include <complex>
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <string>
#include <tuple>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
inline bool valid(const int x, const int r) { return 0 <= x && x < r; }
void initIOStream() {
ios::sync_with_stdio(false); // stdinなどと同期しない
cin.tie(0); // cinの前にflushしない
cout.setf(ios::fixed);
cout.precision(10); // 四捨五入して指定桁数表示
}
int dy[4] = {-1, 0, 1, 0};
int dx[4] = {0, 1, 0, -1};
string m = "URDL";
void mov(int& y, int& x, char c){
for(int i = 0; i < 4; ++i){
if(m[i] == c){
y += dy[i];
x += dx[i];
}
}
}
int main() {
initIOStream();
string S;
int T;
cin >> S >> T;
int y = 0, x = 0;
int cnt = 0;
for(int i = 0; i < S.size(); ++i){
if(S[i] == '?') cnt++;
else{
mov(y, x, S[i]);
}
}
if(T == 1){
if(y >= 0) y += cnt;
else y -= cnt;
}else{
while(cnt){
if(y == 0 && x == 0){
y += cnt % 2;
cnt = 0;
}else if(y == 0){
int tmp = min(cnt, abs(x));
cnt -= tmp;
if(x >= 0) x -= tmp;
else x += tmp;
}else{
int tmp = min(cnt, abs(y));
cnt -= tmp;
if(y >= 0) y -= tmp;
else y += tmp;
}
}
}
cout << abs(y) + abs(x) << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - ドローン |
| User | lawel3110 |
| Language | C++14 (GCC 5.4.1) |
| Score | 101 |
| Code Size | 1717 Byte |
| Status | AC |
| Exec Time | 8 ms |
| Memory | 512 KiB |
Judge Result
| Set Name | Sample | Subtask1 | All | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | 1 / 1 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt |
| Subtask1 | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 20_no_question_01.txt, 20_no_question_02.txt, 20_no_question_03.txt, 20_no_question_04.txt, 30_max_01.txt, 30_max_02.txt, 30_max_03.txt, 30_max_04.txt, 40_corner_01.txt, 40_corner_02.txt, 40_corner_03.txt, 40_corner_04.txt |
| All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 00_example_04.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 20_no_question_01.txt, 20_no_question_02.txt, 20_no_question_03.txt, 20_no_question_04.txt, 30_max_01.txt, 30_max_02.txt, 30_max_03.txt, 30_max_04.txt, 40_corner_01.txt, 40_corner_02.txt, 40_corner_03.txt, 40_corner_04.txt, 50_hand_01.txt, 50_hand_02.txt, 50_hand_03.txt, 60_rand_01.txt, 60_rand_02.txt, 60_rand_03.txt, 60_rand_04.txt, 70_no_ques_01.txt, 70_no_ques_02.txt, 70_no_ques_03.txt, 70_no_ques_04.txt, 80_max_01.txt, 80_max_02.txt, 80_max_03.txt, 80_max_04.txt, 90_corner_01.txt, 90_corner_02.txt, 90_corner_03.txt, 90_corner_04.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_example_01.txt | AC | 4 ms | 256 KiB |
| 00_example_02.txt | AC | 4 ms | 256 KiB |
| 00_example_03.txt | AC | 4 ms | 256 KiB |
| 00_example_04.txt | AC | 4 ms | 256 KiB |
| 10_rand_01.txt | AC | 4 ms | 256 KiB |
| 10_rand_02.txt | AC | 4 ms | 256 KiB |
| 10_rand_03.txt | AC | 4 ms | 256 KiB |
| 10_rand_04.txt | AC | 4 ms | 256 KiB |
| 20_no_question_01.txt | AC | 4 ms | 256 KiB |
| 20_no_question_02.txt | AC | 4 ms | 256 KiB |
| 20_no_question_03.txt | AC | 4 ms | 256 KiB |
| 20_no_question_04.txt | AC | 4 ms | 256 KiB |
| 30_max_01.txt | AC | 7 ms | 512 KiB |
| 30_max_02.txt | AC | 7 ms | 512 KiB |
| 30_max_03.txt | AC | 8 ms | 512 KiB |
| 30_max_04.txt | AC | 7 ms | 512 KiB |
| 40_corner_01.txt | AC | 7 ms | 512 KiB |
| 40_corner_02.txt | AC | 5 ms | 512 KiB |
| 40_corner_03.txt | AC | 5 ms | 512 KiB |
| 40_corner_04.txt | AC | 6 ms | 512 KiB |
| 50_hand_01.txt | AC | 4 ms | 256 KiB |
| 50_hand_02.txt | AC | 4 ms | 256 KiB |
| 50_hand_03.txt | AC | 4 ms | 256 KiB |
| 60_rand_01.txt | AC | 4 ms | 256 KiB |
| 60_rand_02.txt | AC | 4 ms | 256 KiB |
| 60_rand_03.txt | AC | 4 ms | 256 KiB |
| 60_rand_04.txt | AC | 4 ms | 256 KiB |
| 70_no_ques_01.txt | AC | 4 ms | 256 KiB |
| 70_no_ques_02.txt | AC | 4 ms | 256 KiB |
| 70_no_ques_03.txt | AC | 4 ms | 256 KiB |
| 70_no_ques_04.txt | AC | 4 ms | 256 KiB |
| 80_max_01.txt | AC | 7 ms | 512 KiB |
| 80_max_02.txt | AC | 7 ms | 512 KiB |
| 80_max_03.txt | AC | 7 ms | 512 KiB |
| 80_max_04.txt | AC | 7 ms | 512 KiB |
| 90_corner_01.txt | AC | 5 ms | 512 KiB |
| 90_corner_02.txt | AC | 5 ms | 512 KiB |
| 90_corner_03.txt | AC | 7 ms | 512 KiB |
| 90_corner_04.txt | AC | 7 ms | 512 KiB |