这是一篇cf1292b的代码(有玄学错误和调试代码)
#include <iostream>
#include <cmath>
using namespace std;
long long u[70],v[70];
int n;
long long s,t,ax,ay,bx,by;
int main()
{
cin>>s>>t>>ax>>ay>>bx>>by;
u[0]=s;
v[0]=t;
long long a,b,c;
cin>>a>>b>>c;
for(int i=1;i<=69;i++)
{
u[i]=ax*u[i-1]+bx;
v[i]=ay*v[i-1]+by;
if(u[i]>=1e16||v[i]>=1e16)
break;
n=i;
}
int ans=0;
for(int k=0;k<=n;k++)
{
int f[70];
for(int i=0;i<=69;i++)
f[i]=0;
cout<<a<<" "<<b<<" "<<c<<"\n";
for(int i=0;i<=k;i++)
f[i]=k-i;
cout<<a<<" "<<b<<" "<<c<<"\n";
for(int i=k+1;k<=n;i++)
f[i]=i;
cout<<a<<" "<<b<<" "<<c<<"\n";
long long tt=c;
long long nowx=a,nowy=b;
int cnt=0;
for(int i=0;i<=n;i++)
{
long long need=abs(nowx-u[f[i]])+abs(nowy-v[f[i]]);
if(tt<need)
break;
tt-=need;
nowx=u[f[i]];
nowy=v[f[i]];
cnt++;
}
if(ans<cnt)
ans=cnt;
}
cout<<ans;
return 0;
}
可以看到,在第12行定义了a,b,c,随后在第13行进行了读入,之后的代码没有对这三个变量进行任何修改,在第28行和第31行输出这三个变量的时候变量的值仍然是原来的,但是在第34行重新输出的时候变量的值变成了神奇的数字
具体地,对于这道题的样例1,程序的输出大概是这样子的
2 4 20
2 4 20
322122547274 313532612680 304942678086
0
其他的输入数据输出的情况也差不多
而且我在写程序的时候想要让第24行到第50行的循环重复运行n次,但是实际上只运行了1次(经检测,n的值是正常的),那么所以说到底是什么原因导致的这些错误