ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1404. Легко взломать!

why got WA, I have tested with several cases! thanks!
Послано jacksparo 8 авг 2009 19:05
#include <iostream>
using namespace std;

int main(void)
{
    char encry[101];
    int temp[101];
    char dencry[101];

    memset(encry, 0, 101*sizeof(char));
    memset(temp, 0, 101*sizeof(int));
    memset(dencry, 0, 101 * sizeof(char));

    fgets(encry, 101, stdin);

    for (int i=0; i<strlen(encry)-1; i++)
    {
        temp[i] = encry[i] - 'a';
    }

    if (temp[0] < 5)
    {
        temp[0] += 26;
    }

    for (int i=1; i<strlen(encry)-1; i++)
    {
        while (temp[i] < temp[i-1])
        {
            temp[i] += 26;
        }
    }

    for (int i=strlen(encry)-1; i>0; i--)
    {
        temp[i] = temp[i] - temp[i-1];
        dencry[i] = temp[i] + 'a';
    }

    temp[0] -= 5;
    dencry[0] += temp[0] + 'a';

    for (int i=0; i<strlen(encry)-1; i++)
    {
        cout << dencry[i];
    }
    cout << endl;
    return 0;
}
Re: why got WA, I have tested with several cases! thanks!
Послано jacksparo 8 авг 2009 20:35
got AC, after use n instead of strlen(encry)-1, where n is the number of characters.

Caused by difference of strlen between compilers I think.