数据范围怎么回事?

很头疼,也很奇怪。

我用的是一般的数组加Move函数,时间没问题,但是我第一次交的时候结果是存取非法。后来改了数据范围,将100000改为200000,结果就没问题了。

然后我一直改,发现数据的下限是199923.但是题目说数据不超过100000.这是怎么回事的啊!

源程序如下:

var n,m,a,b,c,i,j,k:longint;

txt,txt2:array[1..200000]of longint;{我就改了这里}

begin

read(n,m);

for i:=1 to n do

txt[i]:=i;

for i:=1 to m do

begin

read(a,b,c);

k:=b-a+1;

j:=k shl 2;

move(txt[a],txt2[1],j);

move(txt,txt[a],(n-b)shl 2);

move(txt[c+1],txt[c+k+1],(n-c)shl 2);

move(txt2[1],txt[c+1],j);

end;

for i:=1 to 10 do

writeln(txt[i]);

end.

——————————————————————————

编译通过...

├ 测试数据 01:答案正确... 0ms

├ 测试数据 02:答案正确... 0ms

├ 测试数据 03:答案正确... 0ms

├ 测试数据 04:答案正确... 0ms

├ 测试数据 05:答案正确... 0ms

├ 测试数据 06:答案正确... 0ms

├ 测试数据 07:运行时错误...| 错误号: 128 |

├ 测试数据 08:运行时错误...| 错误号: 216 | 存取非法

├ 测试数据 09:运行时错误...| 错误号: 216 | 存取非法

├ 测试数据 10:运行时错误...| 错误号: 128 |

---|---|---|---|---|---|---|---|-

这是我第一次提交的情况。

——————————————————————

编译通过...

├ 测试数据 01:答案正确... 0ms

├ 测试数据 02:答案正确... 0ms

├ 测试数据 03:答案正确... 0ms

├ 测试数据 04:答案正确... 0ms

├ 测试数据 05:答案正确... 0ms

├ 测试数据 06:答案正确... 0ms

├ 测试数据 07:答案正确... 0ms

├ 测试数据 08:答案正确... 150ms

├ 测试数据 09:答案正确... 134ms

├ 测试数据 10:答案正确... 103ms

---|---|---|---|---|---|---|---|-

这是我改后的情况。

请各位路过的大牛指点下!!!!!

小弟不胜感激!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0 条评论

目前还没有评论...

信息

ID
1058
难度
5
分类
模拟 点击显示
标签
(无)
递交数
2009
已通过
686
通过率
34%
被复制
6
上传者