电子狗的心事

简介: 电子狗的心事

一、题目概述

计算机程序世界中有一位孤独的电子狗,这个电子狗每次只能执行一种操作指令:朝着现在的方向前进X米,然后左转。 电子狗认为,它不断的执行这样的指令,最终有一条指令,能使它回到曾经走过的地方。 然而,实际上,当它已经执行完给定它的n条指令时,并不一定会回到它曾经走过的地方。

并且,电子汪很想知道结果。如果给了它n条指令,在第几条指令时,它能第一次回到自己已经走过的地方。如果指令执行完,都没有回到它曾经走过的地方,电子汪将会十分伤心,这个时候请输出“regret”。

输入格式:

第一行为T,表示输入数据组数。 每组数据的第一行包含一个数n,表示指令长度。接着一行包含n个数字ai,表示第i个指令中,前行的距离。

1<=T<=100

1<=n<=1 000 000

1<=ai<=1 000 000 000

输出格式:

对每组数据输出第一次回到已经走过的位置时为第几条指令。 如果电子汪最终没有回到过自己走过的地方,请输出“regret”。

二、思路分析

由于电子狗每前进Xm,就要进行左转,所以有以下的三种情况电子狗能回到已经走过的位置:


三、代码实现

对于上述分析,有以下代码来进行实现:

#include<stdio.h>
int a[1000000] = { 0 };
int main()
{
  int count = 0;
  scanf("%d", &count);
  while (count--)
  {
    int n = 0;
    int first = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
      scanf("%d", &a[i]);
    }
    if (n <= 3)
    {
      printf("regret\n");
            continue;
    }
    for (int i = 4; i <= n; i++)
    {
      if (i >= 4)
            {
                 if(a[i - 3] >= a[i - 1] && a[i - 2] <= a[i])
                    {
                        first = i;
                        break;
                    }
            } 
      if (i >= 5 )
            {
            if(a[i - 3] == a[i - 1] && a[i - 2] <= a[i] + a[i - 4])
      {
        first = i;
        break;
      }
            } 
      if (i >= 6 )
            {
            if(a[i - 3] <= a[i - 1] + a[i - 5] && a[i - 2] <= a[i] + a[i - 4]&&a[i-1]<=a[i-3]&&a[i-4]<=a[i-2])
      {
        first = i;
        break;
      }
            } 
    }
    if (first > 0)
    {
      printf("%d\n", first);
    }
    else
    {
      printf("regret\n");
    }
  }
    return 0;
}



目录
相关文章
|
8月前
|
Java C语言
JAVA基础(三大特性)
JAVA基础(三大特性)
56 1
|
8月前
|
机器学习/深度学习 编解码 人工智能
CVPR 2023的46篇AIGC应用论文+部分代码汇总
CVPR 2023的46篇AIGC应用论文+部分代码汇总
866 0
|
8月前
|
消息中间件 存储 监控
|
7月前
|
存储 SQL 算法
LeetCode第53题:最大子数组和【python 5种算法】
LeetCode第53题:最大子数组和【python 5种算法】
|
8月前
|
前端开发 JavaScript PHP
解决在页面中无法获取qrcode.js生成的base64的图片
该文档介绍了如何解决在部分安卓手机上无法正确加载二维码图片的问题。之前的方法是使用qrcode.js生成二维码,然后与背景图结合用canvas绘制海报,但在某些安卓设备上遇到onload事件不触发的问题。
137 2
|
8月前
|
Java
Java实现图书管理系统
Java实现图书管理系统
88 0
|
7月前
|
JSON 分布式计算 DataWorks
MaxCompute产品使用合集之如何将JSON格式数据同步到MongoDB
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
8月前
|
Java 关系型数据库 MySQL
JDBC编程相关知识(实现图书管理系统进阶版)(上)
JDBC编程相关知识(实现图书管理系统进阶版)
83 0
|
8月前
|
前端开发 Java 测试技术
在线阅读网站|基于Springboot+Vue开发实现小说阅读网站(二)
在线阅读网站|基于Springboot+Vue开发实现小说阅读网站
267 0
|
开发工具
新人乘风者礼品兑换指南
仅限2023年11月15日(含11月15日)后入驻博主用于兑换礼品,此前完成入驻的博主按原邮寄方式进行。
4431 9