#include <bits/stdc++.h>
#define ll long long
using namespace std;
double mn, mx;
int k;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> k;
string s;
cin >> s;
double x, y, x1, y1;
cin >> x >> y;
cin >> x1 >> y1;
mn=sqrt((x1-x)*(x1-x)+(y-y1)*(y-y1));
int n=s.size();
if (n*k<800000000) {
while (k--)
for (int i=0; i<n; i++) {
if (s[i]=='L')
x1--;
if (s[i]=='R')
x1++;
if (s[i]=='F')
y1++;
if (s[i]=='B')
y1--;
double p=sqrt((x1-x)*(x1-x)+(y-y1)*(y-y1));
mn=min(mn,p);
mx=max(mx,p);
}
cout << fixed << setprecision(12) << mn << ' ';
cout << fixed << setprecision(12) << mx;
}
else {
int x2=0, y2=0;
for (int i=0; i<n; i++) {
if (s[i]=='L')
x1--, x2--;
if (s[i]=='R')
x1++, x2++;
if (s[i]=='F')
y1++, y2++;
if (s[i]=='B')
y1--, y2--;
double p=sqrt((x1-x)*(x1-x)+(y-y1)*(y-y1));
mn=min(mn,p);
mx=max(mx,p);
}
k--;
while (k>0) {
x1+=x2;
y1+=y2;
k--;
double p=sqrt((x1-x)*(x1-x)+(y-y1)*(y-y1));
mn=min(mn,p);
mx=max(mx,p);
}
cout << fixed << setprecision(12) << mn << ' ';
cout << fixed << setprecision(12) << mx;
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
101 ms |
376 KB |
Output is correct |
2 |
Correct |
148 ms |
552 KB |
Output is correct |
3 |
Correct |
191 ms |
620 KB |
Output is correct |
4 |
Correct |
206 ms |
620 KB |
Output is correct |
5 |
Correct |
82 ms |
620 KB |
Output is correct |
6 |
Correct |
123 ms |
692 KB |
Output is correct |
7 |
Correct |
171 ms |
692 KB |
Output is correct |
8 |
Correct |
229 ms |
692 KB |
Output is correct |
9 |
Execution timed out |
1072 ms |
692 KB |
Time limit exceeded |
10 |
Halted |
0 ms |
0 KB |
- |