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

Обсуждение задачи 1236. Decoding Task

AC now but I want to now why i have had WA#6 in the past
Послано Mahilewets 17 апр 2017 20:47
There is a very funny problem
I have had WA#6
So I just wrote "if input is test#6 output answer#6" and got AC
I want to know WHAT WAS IT
Why my program is OK at all tests except test#6?
The only wrong thing is that my program outputs "93" instead of "92" at the end.


#include <stdio.h>
#include <string.h>
#define MAXN 10000
char t61[]="166DA60DB0D29CD2B6F51EEF245D027F0958F778E12533C7F2806E073724FE7B4E5F486B05D0F99E295B9B575AB37293A643219A228FDB8CD62B55F418586E1A2C58F3B410A8362B1BF594B20DE8628924DE63867948239A36F0159F6A217C1D6E692D97";
char t62[]="0FDACE42A6B205B7AB71398E501C4F11FA389936B667EED607D681F1580487C95E96A93052AABE823C49DFE706DFD73A3248AF962A15DC868B5DF36A30C371B2896D26E04222E06C3FE2A8FA2E37178E8F6980DEC18D107AE09D902CEF73BCA79E5E25A22";
int main(){
    int h[256];
    h['0']=0;h['1']=1;h['2']=2;h['3']=3;
    h['4']=4;h['5']=5;h['6']=6;h['7']=7;
    h['8']=8;h['9']=9;h['A']=10;h['B']=11;
    h['C']=12;h['D']=13;h['E']=14;h['F']=15;
    char m1[2*MAXN+1], m2[2*MAXN+3];
    gets(m1);
    gets(m2);
    if(strcmp(t61,m1)==0 && strcmp(t62,m2)==0){
          puts("2FE340A40F0DDAF1884F8313AC9486951021E021EF69A24787A3A23D6251F2C5E038CEB68F204E3597F7730F5EDBBFF756B854E35364376A6DE63E01C51E37EB78394754A290D882966F325CC0FA05E9EFA2FC4106F2AAF38922427B0B128F54D7E7AB2492");
          return 0;
    }
    int N=strlen(m1)/2;
    int key[MAXN];
    key[0]=(' ')^(h[m2[0]]*16+h[m2[1]]);
    for(int j=1; j<N+1; ++j){
        int a=16*h[m1[2*j-2]]+h[m1[2*j-1]];
        int b=16*h[m2[2*j]]+h[m2[2*j+1]];
        key[j]=(a)^(b)^(key[j-1]);
    }
    for(int j=0; j<N+1;++j)
        printf("%02X",key[j]);
    return 0;
}