Submission #1777383


Source Code Expand

#include <bits/stdc++.h>
#define int long long
#define N 100010
using namespace std;
const int INF = 1LL<<55;
const int mod = (1e9)+7;
const double EPS = 1e-8;
const double PI = 6.0 * asin(0.5);
template<class T> T Max(T &a,T b){return a=max(a,b);}
template<class T> T Min(T &a,T b){return a=min(a,b);}


signed main(){
  string S;
  cin>>S;
  int n = S.size();
  vector<int> U(S.size(),INF),D(S.size(),INF);
  for(int i=0;i<n;i++) if(S[i] == 'U') U[i] = 0;
  for(int i=0;i<n;i++) if(S[i] == 'D') D[i] = 0;
  
  for(int i=1;i<n;i++) Min(U[i], U[i-1]+1);
  //for(int i=1;i<n;i++) Min(D[i], D[i-1]+1);

  //for(int i=n-2;i>=0;i--) Min(U[i],U[i+1]+1);
  for(int i=n-2;i>=0;i--) Min(D[i],D[i+1]+1);
  
  int ans = 0;
  for(int i=0;i<n;i++){
    if(S[i] == 'U') {
      ans += (n-i-1);
      ans += i* (2);
    }
    if(S[i] == 'D') {
      ans += (n-i-1) * (2);
      ans += i;
    }
  }
  cout<<ans<<endl;

  return 0;
}

Submission Info

Submission Time
Task B - Evilator
User haji
Language C++14 (GCC 5.4.1)
Score 400
Code Size 959 Byte
Status AC
Exec Time 7 ms
Memory 2048 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 12
Set Name Test Cases
Sample s1.txt, s2.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, s1.txt, s2.txt
Case Name Status Exec Time Memory
01.txt AC 7 ms 2048 KB
02.txt AC 7 ms 2048 KB
03.txt AC 7 ms 2048 KB
04.txt AC 7 ms 2048 KB
05.txt AC 6 ms 2048 KB
06.txt AC 6 ms 2048 KB
07.txt AC 6 ms 2048 KB
08.txt AC 6 ms 2048 KB
09.txt AC 1 ms 256 KB
10.txt AC 1 ms 256 KB
s1.txt AC 1 ms 256 KB
s2.txt AC 1 ms 256 KB