vs和洛谷都过不了,但逻辑上好像没问题
#include <stdio.h>
int train[10000], m, tc = 0, rc;
void dchange(int* ptr_1, int* ptr_2)
{
int i = *ptr_1;
*ptr_1 = *ptr_2;
*ptr_2 = i;
}
int main(void)
{
scanf("%d", &m);
for (int i = 0; i < m; i++)
scanf("%d", &train[i]);
for (int b = 1; b < m; )
{
rc = m - 1;
for (int c = rc; c > 0; c--)
{
if (train[c - 1] - train[c] == b)
{
dchange(&train[c - 1], &train[c]);
for (int a = 0; a < m; a++)
printf("%d", train[a]);
printf("\n");
tc++;
}
}
if (rc != m - 1)
b = 1;
else
b++;
}
printf("%d", tc);
return 0;
}