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
AC × 4
AC × 19
AC × 39
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