提交时间:2024-10-04 14:46:48

运行 ID: 33119

#include <bits/stdc++.h> #define pii pair <int, int> #define fir first #define sec second #define mkp make_pair using namespace std; char s[200005]; long long k; map <pii, short> mp; signed main() { scanf("%s %lld", s + 1, &k); // printf("1"); // fflush(stdout); int n = strlen(s + 1), x = 0, y = 0; int T = 10; int res = 0, p1 = 0, p2 = 0; while ((T-- || p1 != p2) && k) { mp[mkp(x, y)] = 1; for (int i = 1; i <= n; i++) { if (s[i] == 'L') x--; else if (s[i] == 'R') x++; else if (s[i] == 'U') y++; else y--; // printf("%d %d\n", x, y); mp[mkp(x, y)] = 1; } int nr = 0; p1 = p2; for (auto i : mp) { nr++; } p2 = nr - res; res = nr; k--; } if (k == 0) printf("%lld", res); else printf("%lld", (long long)(k) * p2 + res); fclose(stdout); return 0; }