Форум Всеукраїнської інтернет-олімпіади NetOI


На форумі обговорюються лише питання, пов'язані з олімпіадою

Ви не зайшли.

#1 2007-11-07 19:21:09

askold
Новий користувач
Зареєстрований: 2006-10-26
Повідомлень: 12

Military4 не пройшла(((

По задачі повний вронг (((( базові тести вдома проходять - на сервері - жодного.... :'(

//#includes

using namespace std;

long long n_tim,n_tur;

int main(){
    char c;
    long long n_rig=0,n_sty=0;
    while((c=getchar())!='\n'&&c!=EOF){
        if('>'==c){
            n_rig++;
            if(n_sty>0)
                n_sty--;
        }
        else{
            n_tur+=n_rig;
            n_tim=n_rig+n_sty;
            if(n_rig>0)
                n_sty++;
        }
    }
    cout<<n_tim<<" "<<n_tur<<"\n";
    exit(0);
}

Дякую Dark_Dimius-у...
Я виправив одну строчку

old: while((c=getchar())!='\n'&&c!=EOF)
new: while((c=getchar())!='\n'&&c!=EOF&&(c=='>'||c=='<'))

І ПРОЙШЛО 20 ТЕСТІВ!!!! це просто якась фігня....... не розумію ЧОМУ в перший раз воно не пройшло - там шо в тестах не було '\n' в кінці рядка?????? Чи це взагалі можна вважати моєю помилкою, чи помилкою оформлення тестів?? дивно.....(((((((((( я розраховував що кожний тест закінчуватиметься на '\n'

Відредаговано askold (2007-11-08 15:32:03)

Поза форумом

 

#2 2007-11-07 19:45:12

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Military4 не пройшла(((

А какой ответ сервера: WA,BD,TL,RE,...

Судя по виду, похоже на неправильный алгоритм. Хотя тут утверждать не берусь - глубоко в идею не закапывался.
Что хранится в n_rig и n_sty?


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

#3 2007-11-07 19:50:42

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

держы АС решение и сравнивай

#include <cstdio>
#include <cmath>
#include<iostream>
using namespace std;
int main()
{
    char c,p;///          b->>        f-<<
    long long int b,f,s,maxf,sss,q;s=0;b=0;f=0;maxf=0;sss=0;
    q=0;p=0;
    while(scanf("%c",&c)>=0&&(c=='>'||c=='<'))
        {
        if (p==0)while(c=='<'&&scanf("%c",&c)>=0);
        if (c=='>'){b++;if (b>1&&sss&&p==c)q++;}
            else {f++; s+=b;maxf=b+f;sss=sss-q;q=0;if (sss<0) sss=0;
                if ((f>1)&&p==c)sss++;};
                p=c;
        }
    cout<<maxf-f+sss<<' '<<s<<endl;//printf("%i %i\n",maxf-f+sss,s);
    return 0;
}


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#4 2007-11-07 19:51:13

necro
Олімпієць
Зареєстрований: 2005-11-19
Повідомлень: 134

Re: Military4 не пройшла(((

reiten написав:

А какой ответ сервера: WA,BD,TL,RE,...

Судя по виду, похоже на неправильный алгоритм. Хотя тут утверждать не берусь - глубоко в идею не закапывался.
Что хранится в n_rig и n_sty?

Помоему очевидно что  n_rig - колво "правых" солдат на даный шаг. Воощето неясно что может быть если свой тестинг проходит но онлайн не проходит. Может... е-еее.... а вообще фиг ево знает. может очредной загон с сишкой.


Да что там "винница" под новый год... Матан - вот в чем сила

Поза форумом

 

#5 2007-11-07 19:52:13

necro
Олімпієць
Зареєстрований: 2005-11-19
Повідомлень: 134

Re: Military4 не пройшла(((

Dark_Dimius написав:

держы АС решение и сравнивай

#include <cstdio>
#include <cmath>
#include<iostream>
using namespace std;
int main()
{
    char c,p;///          b->>        f-<<
    long long int b,f,s,maxf,sss,q;s=0;b=0;f=0;maxf=0;sss=0;
    q=0;p=0;
    while(scanf("%c",&c)>=0&&(c=='>'||c=='<'))
        {
        if (p==0)while(c=='<'&&scanf("%c",&c)>=0);
        if (c=='>'){b++;if (b>1&&sss&&p==c)q++;}
            else {f++; s+=b;maxf=b+f;sss=sss-q;q=0;if (sss<0) sss=0;
                if ((f>1)&&p==c)sss++;};
                p=c;
        }
    cout<<maxf-f+sss<<' '<<s<<endl;//printf("%i %i\n",maxf-f+sss,s);
    return 0;
}

genuisly


Да что там "винница" под новый год... Матан - вот в чем сила

Поза форумом

 

#6 2007-11-07 20:00:50

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

necro написав:

Dark_Dimius написав:

держы АС решение и сравнивай

#include <cstdio>
#include <cmath>
#include<iostream>
using namespace std;
int main()
{
    char c,p;///          b->>        f-<<
    long long int b,f,s,maxf,sss,q;s=0;b=0;f=0;maxf=0;sss=0;
    q=0;p=0;
    while(scanf("%c",&c)>=0&&(c=='>'||c=='<'))
        {
        if (p==0)while(c=='<'&&scanf("%c",&c)>=0);
        if (c=='>'){b++;if (b>1&&sss&&p==c)q++;}
            else {f++; s+=b;maxf=b+f;sss=sss-q;q=0;if (sss<0) sss=0;
                if ((f>1)&&p==c)sss++;};
                p=c;
        }
    cout<<maxf-f+sss<<' '<<s<<endl;//printf("%i %i\n",maxf-f+sss,s);
    return 0;
}

genuisly

не совсем понял... похвала или стеб?


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#7 2007-11-08 00:03:44

necro
Олімпієць
Зареєстрований: 2005-11-19
Повідомлень: 134

Re: Military4 не пройшла(((

Не. Не стеб молоток что заАСептил. Просто автор я думаю знает верное решение но реализация может быть разной. Проблема то не во вронг ансверах а в том что на входных тестах у автора работает а в онлайн тестилке - нет на тех же тестах входных.


Да что там "винница" под новый год... Матан - вот в чем сила

Поза форумом

 

#8 2007-11-08 09:07:17

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

askold написав:

По задачі повний вронг (((( базові тести вдома проходять - на сервері - жодного.... :'(

//#includes

using namespace std;

long long n_tim,n_tur;

int main(){
    char c;
    long long n_rig=0,n_sty=0;
    while((c=getchar())!='\n'&&c!=EOF){
        if('>'==c){
            n_rig++;
            if(n_sty>0)
                n_sty--;
        }
        else{
            n_tur+=n_rig;
            n_tim=n_rig+n_sty;
            if(n_rig>0)
                n_sty++;
        }
    }
    cout<<n_tim<<" "<<n_tur<<"\n";
    exit(0);
}

Кому невлом - допоможіть розібратися в чому просак???

а если в конце строки какойто бред, а не >  и < добавь проверку &&(c=='>'||c=='<')


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#9 2007-11-08 15:37:12

partisan
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-04
Повідомлень: 180

Re: Military4 не пройшла(((

Dark_Dimius написав:

а если в конце строки какойто бред, а не >  и < добавь проверку &&(c=='>'||c=='<')

А как в конце строки может оказаться какой-то бред? Тогда это уже будут некорректные тесты. На Паскале левых символов не наблюдается (проверял). А тут что, какой-то прикол с Сишкой?

Поза форумом

 

#10 2007-11-08 16:34:51

Yevgeniy
Новий користувач
Зареєстрований: 2006-10-14
Повідомлень: 67

Re: Military4 не пройшла(((

Шановний askold на жаль помилку допустили таки Ви. Ви написали:

long long n_tim,n_tur;

а треба так

long long n_tim = 0,n_tur = 0;

Наприклад в мене на такому тестi ><><<<<><><<><>><<><><><> ваша програма виводить :
16 242352359
замiсть 14 66. При виправленнi помилки все добре.


"Математика -- цариця наук, арифметика -- цариця математики."
      Карл Фрідріх Гаусс (1777 - 1855) - КОРОЛЬ МАТЕМАТИКІВ.

Поза форумом

 

#11 2007-11-08 18:17:51

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

Yevgeniy написав:

Шановний askold на жаль помилку допустили таки Ви. Ви написали:

long long n_tim,n_tur;

а треба так

long long n_tim = 0,n_tur = 0;

Наприклад в мене на такому тестi ><><<<<><><<><>><<><><><> ваша програма виводить :
16 242352359
замiсть 14 66. При виправленнi помилки все добре.

ето завситот компилятора, конечно метод заявленый вами нарерняка, но факт в том что при добавлении того что я на писал его код проходит все тесты


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#12 2007-11-08 18:19:49

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

partisan написав:

Dark_Dimius написав:

а если в конце строки какойто бред, а не >  и < добавь проверку &&(c=='>'||c=='<')

А как в конце строки может оказаться какой-то бред? Тогда это уже будут некорректные тесты. На Паскале левых символов не наблюдается (проверял). А тут что, какой-то прикол с Сишкой?

из личной переписки

Askold, 11/8/2007 3:14:26 PM:
"Дякую Dark_Dimius-у...
Я виправив одну строчку

old: while((c=getchar())!='\n'&&c!=EOF)
new: while((c=getchar())!='\n'&&c!=EOF&&(c=='>'||c=='<'))

І ПРОЙШЛО 20 ТЕСТІВ!!!! це просто якась фігня....... не розумію ЧОМУ в перший раз воно не пройшло - там шо в тестах не було '\n' в кінці рядка?????? Чи це взагалі можна вважати моєю помилкою, чи помилкою оформлення тестів?? дивно.....(((((((((("

вот резалт, причина - хз, может приколы с переводом каретки или чтото из етой оперы

Відредаговано Dark_Dimius (2007-11-08 18:21:12)


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#13 2007-11-08 18:41:47

Nicky Nick
Олімпієць
Звідки: Харьков
Зареєстрований: 2005-11-25
Повідомлень: 48
Вебсайт

Re: Military4 не пройшла(((

У меня был прикол. Когда я читал данные, проверяя не поступающие символы, а до конца файла (см. потока), то задача в онлайне вылетала по тайм-лимиту - 0,07 sec.

Поза форумом

 

#14 2007-11-09 15:24:18

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

Nicky Nick написав:

У меня был прикол. Когда я читал данные, проверяя не поступающие символы, а до конца файла (см. потока), то задача в онлайне вылетала по тайм-лимиту - 0,07 sec.

похоже по некоторой причине ЕОФ не приходит((((9


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#15 2007-11-11 20:04:07

Silicious Man
Новий користувач
Звідки: Донецк
Зареєстрований: 2007-11-11
Повідомлень: 79

Re: Military4 не пройшла(((

Возможно читается лишний перевод строки? По-ходу там два лишних символа, потому что вот такой код у них на сервере (но не у меня на компе!) читает правильно:

    vector <char> a;
    char t10 = 0;
    while ( t10 != 10 )
    {
        scanf ( "%c", &t10 );
        a.push_back ( t10 );
    }
    a.pop_back ();
    a.pop_back ();


—————————————————————————————————
Life is a beautiful place where dreams and reality live in peace.

Поза форумом

 

#16 2007-11-12 06:43:27

Dark_Dimius
Новий користувач
Звідки: /dev/null
Зареєстрований: 2005-11-17
Повідомлень: 136

Re: Military4 не пройшла(((

Silicious Man написав:

Возможно читается лишний перевод строки? По-ходу там два лишних символа, потому что вот такой код у них на сервере (но не у меня на компе!) читает правильно:

    vector <char> a;
    char t10 = 0;
    while ( t10 != 10 )
    {
        scanf ( "%c", &t10 );
        a.push_back ( t10 );
    }
    a.pop_back ();
    a.pop_back ();

как всегда идут сначала перевод строки\n (10-символ) а потом перевод каретки \r(13) если тесты набирались в винде, если в линухе то ето можно настраивать... часто перевод каретки не ставят


/*Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Некоторые люди на пальцах считают до 10, я же до 1023*/
Если надо помощь - стучитесь в асю, постараюсь помочь 99996414http://www.icq.com/scripts/online.dll?icq=99996414&amp;img=5

Поза форумом

 

#17 2007-11-12 13:38:01

Skiminok
Новий користувач
Звідки: Киев, Украина
Зареєстрований: 2006-01-19
Повідомлень: 144
Вебсайт

Re: Military4 не пройшла(((

Dark_Dimius написав:

Silicious Man написав:

Возможно читается лишний перевод строки? По-ходу там два лишних символа, потому что вот такой код у них на сервере (но не у меня на компе!) читает правильно:

    vector <char> a;
    char t10 = 0;
    while ( t10 != 10 )
    {
        scanf ( "%c", &t10 );
        a.push_back ( t10 );
    }
    a.pop_back ();
    a.pop_back ();

как всегда идут сначала перевод строки\n (10-символ) а потом перевод каретки \r(13) если тесты набирались в винде, если в линухе то ето можно настраивать... часто перевод каретки не ставят

С точностью до наоборот. В винде возврат каретки имеет код 13, а перевод строки - код 10. Первый идёт раньше, это да.

Відредаговано Skiminok (2007-11-12 13:38:35)


Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.
http://wwp.icq.com/scripts/online.dll?icq=282667777&amp;img=5ICQ 282667777

Поза форумом

 

#18 2007-11-12 18:12:12

reiten
журі
Звідки: Киев
Зареєстрований: 2005-10-16
Повідомлень: 196

Re: Military4 не пройшла(((

Поправочка. Если формат файла соответствует ОС, то по стандарту при чтении в текстовом режиме программа все равно получит только '\n', не зависимо от того, в линуксе дело, или в винде. Преобразование будет проведено на уровне функций ввода-вывода.
А вот если в линуксе читать файл с досовскими концами строки, то '\r' останутся на своих местах.


"...Существуют два подхода к проектированию программ. В одном архитектура делается настолько простой, что в ней явно нет дефектов; в другом - настолько сложной, что в ней нет явных дефектов".
С. А. Хоар

Поза форумом

 

Нижній колонтитул

Powered by Likt
© Copyright 2002–2009 Likt