Ada和Crayons - CodeChef

时间:2017-08-01 15:42:56

标签: c

The Problem

我的代码有什么问题?它在我的TurboC编译器上运行完全正常但在CodeChef中出现运行时错误。

Ada有一系列N个蜡笔,一些蜡笔指向上方,一些蜡笔指向下方。 Ada认为,如果所有的蜡笔指向同一个方向,那么蜡笔阵列就很漂亮。

您可以在一个步骤中翻转连续蜡笔的任何部分。翻转一段后,所有指向下方的蜡笔都将指向上方并且向上看

使蜡笔阵列美观的最小步数是多少?

输入

输入的第一行包含T测试用例的数量。每个测试用例在一行中描述,其中包含N个字符的字符串S,第i个字符是' U'如果第i个蜡笔指向上方并且“' D'如果指向下方。

输出

对于每个测试用例,输出一行包含使所有蜡笔指向同一方向所需的最小翻转次数。

示例

输入: 1 UUDDDUUU

输出: 1

#include<stdio.h>

int main()
{
    clrscr();
    int t,i,j,p,c,k,ucount=0,dcount=0;
    char last='0';
    char cases[50][3000];

    scanf("%d",&t);

    for(i=0;i<t;i++)
        scanf("%s",cases[i]);

    for(i=0;i<t;i++)
    {
        for(j=0;cases[i][j]!='\0';j++)
        {
            if(cases[i][j]=='U' && last!='U')
            {
                ucount++;
                last='U';
            }
            else if(cases[i][j]=='D' && last!='D')
            {
                dcount++;
                last='D';
            }    
        }

        if(i==(t-1))
        {
            if(dcount<ucount)
                printf("%d",dcount);
            else
                printf("%d",ucount);
        }
        else
        {
            if(dcount<ucount)
                printf("%d\n",dcount);
            else
                printf("%d\n",ucount);
        }

        ucount=0;
        dcount=0;
        last='0';
    }

    return 0;
}

2 个答案:

答案 0 :(得分:0)

我严重怀疑CodeChef是否支持您似乎使用过的非标准local expression_3 = true if expression_1 and expression_2 then print("yes") elseif expression_3 then print("no") end 函数。您应该确保使用的是符合标准的本地标准,而不是使用标准库中无法找到的平台和工具特定功能的东西。

clrscr()

您可能会发现使用Davids-Mac-Pro:~ dhoelzer$ gcc test.c test.c:4:1: warning: implicit declaration of function 'clrscr' is invalid in C99 [-Wimplicit-function-declaration] clrscr(); ^ 1 warning generated. Undefined symbols for architecture x86_64: "_clrscr", referenced from: _main in test-171c5e.o ld: symbol(s) not found for architecture x86_64 的参考,但这也不是标准的一部分。

答案 1 :(得分:0)

编辑:先前的答案完全取代。

发布的代码存在两个主要问题:

1)这一行:

<script>

window.onload = function () {

var copyTextareaBtn = document.querySelectorAll('.js-textareacopybtn');

copyTextareaBtn.forEach(function(btn){
btn.addEventListener('click', function (event) {
var copyTextarea = document.getElementById(this.dataset.txtid);
copyTextarea.select();

try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
alert('Copying text command was ' + msg);
} catch (err) {
alert('Whoops, unable to copy');
}
})});

</script>

</head>

<body>
<p>Test #1 </p>

<div>
<textarea id="txta1" class="js-copytextarea" readonly="readonly" style="width:20%;" 
rows="5">Hello. This is textarea test bed #1</textarea>
<button data-txtid="txta1" class="js-textareacopybtn">Copy Text (works)</button>

<p>Test #2:</p>

<textarea id="txta2" class="js-copytextarea" readonly="readonly" style="width:20%;" 
rows="5">Hi! Welcome to textarea test bed #2 </textarea>
<button data-txtid="txta2" class="js-textareacopybtn">Copy Text</button>

</div>

意味着最多50个测试用例,每个测试用例可以包含3000个蜡笔。 &LT;&LT;这是问题所述的倒退。

2)这两行:

char cases[50][3000]; 

表示每个测试用例最多50个测试用例,最多3000个蜡笔。

该问题表明每个测试用例最多3000个测试用例和最多50个蜡笔。

注意,在修复数据声明时,在每个测试用例中最多允许51个位置,以允许scanf()在每个'%s'输入后插入的NUL字符。