ACM Jolly跳投

时间:2013-12-02 16:41:34

标签: c++

我有这个问题的问题我不知道为什么我总是得到WA我的代码是正确的并且工作没有问题我不知道问题在哪里我在几个测试用例中测试它但是它有效

#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{

    vector <int> num;

    int n,temp,j=0;

    cin>>n;

    for(int i= 0 ; i<n ; i++)
    {
        cin>>temp;

        num.push_back(temp);
    }
    for(int i=0; i<num.size() ; i++)
    {

        if(i+1 < num.size())
        {
            j++;

            if(abs(num[i] - num[i+1]) != (n-j) && abs(num[i] - num[i+1]) !=(j))
            {
                cout<<"Not jolly"<<endl;

                return 0;
            }
        }
    }

    cout<<"Jolly"<<endl;

}

2 个答案:

答案 0 :(得分:1)

您错误地理解了这个问题。引自problem statement

  

n的序列>如果连续元素之间的差值的绝对值采用所有值1到n-1,则0个整数称为快活跳线。

因此:2 5 1 3 4也是N = 5的快捷序列。但是,您的程序输出它不是。

如果你从Uva online judge解决任务,那么可能还有一个问题 - 你只读了一次输入,而在Uva中写的是:

  

每行输入包含一个整数n <= 3000,后跟表示序列的n个整数。

答案 1 :(得分:0)

验证您的帐户详细信息 - 单击此处 随时随地编码 菜单 GUVI:学习用您的母语编写代码

高级 DS - KPR1 分享 加密文本的一种常见但不安全的方法是排列字母表中的字母。换句话说,字母表中的每个字母在文本中始终被某个其他字母替换。为了确保加密是可逆的,没有两个字母被同一个字母替换。您的任务是解密几行编码的文本,假设每一行使用不同的替换集,并且解密文本中的所有单词都来自已知单词的字典。

输入说明: 输入由一行包含整数 n 和 n 个小写单词组成,每行一个,按字母顺序排列。这 n 个单词组成了可能出现在解密文本中的单词词典。字典后面是几行输入。每行都按上述方式加密。字典里的单词不超过1000个。没有一个单词超过 16 个字母。加密行仅包含小写字母和空格,长度不超过 80 个字符。

输出说明: 解密每一行并将其打印到标准输出。如果有多种解决方案,任何一个都可以。如果没有解决方案,请用星号替换字母表中的每个字母。

样本输入: 6 和 踢 简 噗 点 耶尔特 gjvg xsb hxsn xsb qymm xsb rqat xsb pnetfn xxxx yyy zzzz www yyyy aaa bbbb ccc dddddd 示例输出: 踢和简和吹,点和耶尔特


代码编辑器

输入 输出 输入您的输入