求帮忙!我代码这么写哪里错了啊?https://www.luogu.com.cn/problem/P2625这是题目的链接。
#include<iostream>
#include<cstdio>
#include <bits/stdc++.h>
#include<algorithm>
using namespace std;
const double p = 3.1415926535;
string s;
double ans, hd;
int n, f, b, sum = 1, x, c, minn = 1e9;
int a[200];
bool dp[400][400];
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> s;
if (s == "right")
{
cin >> x;
a[sum] = x % 360;
sum++;
}
else if (s == "left")
{
cin >> x;
a[sum] = 360 - x % 360;
sum++;
}
else if (s == "forward")
{
cin >> x;
f += x;
}
else
{
cin >> x;
b += x;
}
}
sum--;
dp[0][0] = 1;
for (int i = 1; i <= sum; i++)
{
for (int j = 0; j <= 360; j++)
{
if (j >= a[i])
{
dp[i][j] = dp[i - 1][j] || dp[i - 1][j - a[i]];
// cout << dp[i-1][j] <<" "<< dp[i - 1][j -a[i]] << " ";
}
else
{
dp[i][j] = dp[i - 1][j];
// cout << dp[i-1][j] << " ";
}
// cout << i << " " << j << " " << a[i]<< " "<< dp[i][j] << " "<< endl;
}
// cout << endl;
}
for (int i = 360; i >= 1; i--)
{
if (dp[sum][i] != 0 && minn > abs(180 - i))
{
c = 180 * (i / 180 + 1) - i;
}
}
// cout <<c<<endl;
if (c == 180)
{
ans = f + b;
}
else
{
ans = sqrt(f * f + b * b + 2 * b * f * cos(c * p / 180.0));
}
cout << fixed << setprecision(6) << ans;
return 0;
}