Для проверки программа отправляется на сервер, сервер подставляет свой input.txt. Про мой код сервер отзывается негативно. Я считаю, что не учитываю какую-то крайнюю точку, подкладываемую сервером, но уже который час не могу её найти. Помогите пожалуйста.
Сообщение отредактировалshadow_tin - Среда, 30.01.2013, 20:31
"Просто у него окрепшая физика, а ты ещё не дорос..."
Жуть. Не могу смотреть на такие названия переменных. Попробуй вот это, я не проверял, но должно работать для "чёрного" столбца. Для "чёрной" строки, если очень нужно, сам переделаешь.
Сообщение отредактировалSLAwww - Четверг, 31.01.2013, 00:00
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Жуть. Не могу смотреть на такие названия переменных.
Извини, я пишу на си не так давно, и меня этому никто не учил. Глупый вопрос, а объявления переменных ведь нужно дописать? Или это какой-то другой, магический си) Вот я запускаю твой код в Dev-c++ и все вроде ок, а отправляю на сервер - ругается на необъявленные переменные. -- Хм, выбрал компилятор на сервере, GNU C 4.5.0 (MinGW), пишет - неправильный ответ. Но всё равно спасибо, попробую разобраться. Чувствую, что мне далеко до твоего уровня.
-JD-, ну, конкурс уже прошел, и я уже из практического интереса написал сей опус. Придут результаты, узнаем стоило ли мне вообще писать.
"Просто у него окрепшая физика, а ты ещё не дорос..."
Все переменные объявлены, возможно, компилятор на сервере не понимает, зачем нужны аргументы функции main.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
int p(0), iWidth(0), iHeight(0), iSpacer(0), iAfterSpacer(0); //p = iWidth x iHeight //iSpacer - number of white pixels in each line before black pixel. i.e. if iSpacer = 2, then the line is 0 0 1 0 0 ... 0
iFile >> p; if(!(p>=2 && p<=1000)) { strError = "Number P is not in range [2;1000] !"; error(); }
cout << "\nNumber P is " << p << endl;
int iCurrentNumber, iIterator(0); while(iIterator <= p && iCurrentNumber != 1) //Let's find iSpacer value :P { iFile >> iCurrentNumber; if(iCurrentNumber != 1 && iCurrentNumber != 0) { strError = "Pixel color should be black or white only!"; error(); } if(iCurrentNumber == 0) { iIterator++; } }
iSpacer = iIterator; if(iSpacer >= p) { strError = "The image doesn't contain any black pixel!"; error(); } if(iSpacer < 0) { strError = "Number of pixels can't be less than zero!"; error();}
cout << "\nSpacer value is " << iSpacer << endl;
//now we know the spacer length. Let's find out how many white pixels are after the black one in one line (iAfterSpacer).
iIterator = 0; iCurrentNumber = 0; while(iIterator <= p && iCurrentNumber != 1) { iFile >> iCurrentNumber; if(iCurrentNumber != 1 && iCurrentNumber != 0) { strError = "Pixel color should be black or white only!"; error(); } if(iCurrentNumber == 0) { iIterator++; } }
if(iIterator > 0) { iAfterSpacer = iIterator - iSpacer; } if(iAfterSpacer<0) { strError = "Number of pixels can't be less than zero!"; error();}
cout << "\nNumber of white pixels after black one is " << iAfterSpacer << endl;
cout << "\nEstimated height is " << iHeight << endl << "Estimated width is " << iWidth << endl;
//now let's check if the image has a black vertical line... reopenFile(); int fix; iFile >> fix; // go after P number int iTemp = iHeight; bool bHasBlackPixel = true; while(iTemp>0 && bHasBlackPixel) { //skip first spacer int iTmpSp = iSpacer; while(iTmpSp>0) { int x; iFile >> x; if(x != 1 && x != 0) { strError = "Pixel color should be black or white only!"; error(); } iTmpSp--; } // ~skip first spacer
//skip second spacer int iTmpASp = iAfterSpacer; while(iTmpASp>0) { int y; iFile >> y; if(y != 1 && y != 0) { strError = "Pixel color should be black or white only!"; error(); } iTmpASp--; } // ~skip second spacer
Насколько я понял условие, писать надо было на чистом С, без всяких там iostreamов. И я надеюсь, ты на самом деле знаешь, что такое итератор.
Сообщение отредактировалSLAwww - Четверг, 31.01.2013, 03:41
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Моя программа ищет "чёрный" столбец, а не "чёрную" строку.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.