首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ACM乔利跳投2

ACM乔利跳投2
EN

Stack Overflow用户
提问于 2013-12-03 11:31:52
回答 2查看 184关注 0票数 2

我对这个问题有问题,我不知道我的代码有什么问题,任何帮助都可能是很好的,这里是问题http://sharecode.ir/sections/problem/problemset/2175的链接,我在几个测试用例中测试了它,但是它很简单

代码语言:javascript
复制
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    vector <int> num;
    vector <int> num1;
    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())
        {
            num1.push_back(abs(num[i]-num[i+1]));
        }
    }
    for(int i=0 ; i<num1.size() ; i++)
    {
        if(i+1 < num1.size())
        {
            if(num1[i] == num1[i+1])
            {
                cout<<"Not jolly"<<endl;
                return 0;
            }
        }
    }
    sort(num1.begin(),num1.end());
    for(int i=0 ; i<num1.size() ; i++)
    {
        if(i+1 < num1.size())
        {
            if(num1[i]+1 != num1[i+1])
            {
                cout<<"Not jolly"<<endl;
                return 0;
            }
        }
    }
    cout<<"Jolly"<<endl;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 11:44:08

您的代码不适用于成员之间的距离增加的序列,但最小的距离不是1。请考虑以下输入:

代码语言:javascript
复制
3 5 10 11

差异是5和6。第一次测试没有启动,因为它们确实不同。第二个测试也不会触发,因为6 == 5 + 1。但它仍然不是一个快乐的跳伞者。

票数 0
EN

Stack Overflow用户

发布于 2013-12-03 12:28:44

另一个问题是,您应该将输入读入到EOF

正如输入规范所述:

每一行输入都包含一个整数n< 3000,后面跟着代表序列的n个整数。

你已经花了一段时间在你的算法和来自输入的进程编号上。现在,您的当前代码将只处理第一个输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20349974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档