Em đang giải 1 bài toán (đề ở dưới) ở trang web lập trình của trường nhưng sau khi tạo chương trình thì chạy thử các bộ test thì ra kết quả đúng nhưng khi đưa lên web thì lại cho kết quả sai. Em không biết code của mình sai thuật toán ở đâu mong nhờ mọi người giúp đỡ
#include <iostream>
int main(void)
{
int T,n,m1,m2,m3,d;
int d1;
int tmp1, tmp2;
tmp1 = 0; tmp2 = 0;
std::cin >> T;
int S[T];
for (int a = 0; a < T; a++) S[a] = 0;
for (int j = 0; j < T; j++)
{
std::cin >> n >> m1 >> m2 >> m3 >> d;
d1 = d;
// Đếm số từ m1 -> 1 và m3 -> n
for (int i = m1 - 1; i > 0; i--)
{
if (d1 !=0 )
{
S[j] += 1;
d1--;
}
}
d1 = d;
for (int i = m3 + 1; i <= n; i++)
{
if (d1 !=0 )
{
S[j] += 1;
d1--;
}
}
d1 = d;
tmp1 = m1;
tmp2 = m2;
// Đếm số từ m1 -> m2
while ((tmp1 + 1) < (tmp2 - 1))
{
if (d1 > 0)
{
S[j] += 2;
d1--;
}
tmp1++;
tmp2--;
}
if ((tmp1 + 1) == (tmp2 - 1)) S[j] += 1;
// Đếm số từ m2 -> m3
d1 = d;
tmp1 = m2;
tmp2 = m3;
while ((tmp1 + 1) < (tmp2 - 1))
{
if (d1 > 0)
{
S[j] += 2;
d1--;
}
tmp1++;
tmp2--;
}
if ((tmp1 + 1) == (tmp2 - 1)) S[j] += 1;
}
for (int j = 0; j < T; j++) std::cout << n - S[j] - 3 << std::endl;
}