电子狗的心事
Description
计算机程序世界中有一位孤独的电子狗,这个电子狗每次只能执行一种操作指令:朝着现在的方向前进X米,然后左转。 电子狗认为,它不断的执行这样的指令,最终有一条指令,能使它回到曾经走过的地方。 然而,实际上,当它已经执行完给定它的n条指令时,并不一定会回到它曾经走过的地方。
并且,电子汪很想知道结果。如果给了它n条指令,在第几条指令时,它能第一次回到自己已经走过的地方。如果指令执行完,都没有回到它曾经走过的地方,电子汪将会十分伤心,这个时候请输出“regret”。
Input Format
第一行为T,表示输入数据组数。 每组数据的第一行包含一个数n,表示指令长度。接着一行包含n个数字ai,表示第i个指令中,前行的距离。
1<=T<=100
1<=n<=1 000 000
1<=ai<=1 000 000 000
Output Format
对每组数据输出第一次回到已经走过的位置时为第几条指令。 如果电子汪最终没有回到过自己走过的地方,请输出“regret”。
输入
3
6
1 1 1 1 1 1
5
1 1 2 2 3
7
1 10 20 10 19 3 1
输出
4
regret
5
#include
int main(){
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
int num[n];
for(int i = 0 ; i < n ; i++){
scanf("%d",&num[i]);
}
int r[2] = {1,-1};
int a = 0 , b = 0;
int flag = 0;
for(int i = 0 ; i < n ; i++){
if(i % 4 == 0 )
for(int j = 0 ; j < num[i] ; j++)
a += r[0];
if(i % 4 == 1 )
for(int j = 0 ; j < num[i] ; j++)
b += r[0];
if(i % 4 == 2 )
for(int j = 0 ; j < num[i] ; j++)
a += r[1];
if(i % 4 == 3 )
for(int j = 0 ; j < num[i] ; j++)
b += r[1];
if(a == 0 && b == 0){
printf("%d\n",i+1);
flag = 1;
break;
}
}
if(flag == 0 )
printf("regret\n");
}
}
测试用例运行结果正确但是提交过不了
这里有一个格式不满足,你是输入一组就执行一组。题目的要求是输入多组,然后多组结果一起输出