Название | Runtime error ошибка исполнения на тесте N. Выполнение программы на n -ом тесте прервалось с ошибкой |
Дата публикации | 21.12.2013 |
Размер | 78.91 Kb. |
Тип | Тесты |
5-bal.ru > Авто-обзор > Тесты
Общие правила участия в Турнире и инструкции для участников
Порядок проверки решений
Оба этапа Турнира проводятся по правилам международного соревнования ACM ICPC. Процесс проверки решений полностью автоматизированный. Жюри готовит набор тестов (входных данных) для каждой задачи. Решение, присланное участником, засчитывается при условии, если оно прошло все тесты (выданы правильные ответы, решение уложилось в определенный объем времени и объём использованной памяти); в противном случае , засчитывается неудачная попытка. Частичные решения не засчитываются.
Написав решение, участник отправляет его исходный код на проверку с помощью браузера. Тестирующая система компилирует код и запускает программу один раз для каждого теста (на вход программы подставляются входные данные, затем проверяется правильность вывода, выданного программой для текущего теста). Тесты проверяются, начиная с 1-го и далее по порядку.
Тесты держатся в секрете до окончания тура. Однако первый тест (а иногда и второй, и третий…) приводится в условии задачи. Проверка одного решения занимает от нескольких секунд до пары минут, после чего в браузере выводится результат проверки.
Задачи можно сдавать в любом порядке. Участник может делать любое количество попыток по каждой задаче; однако каждая неудачная попытка негативно сказывается на рейтинге, который участник получит после успешной сдачи задачи.
Результатом проверки может быть один из следующих вердиктов:
- Accepted – решение зачтено. Решение прошло все тесты, засчитано полное решение, участник поднимается в рейтинговой таблице (которая обновляется немедленно). При этом фиксируется время, прошедшее от начала соревнования до момента отправки решения, количество предшествующих неудачных попыток по этой задаче – эти факторы влияют на итоговое положение участника.
- Compilationerror – ошибка компиляции. Исходный код, присланный участником, не компилируется. Можно нажать на ссылку «инфо», чтобы увидеть сообщения, выданные компилятором. Попытка игнорируется.
- Wronganswer – неправильный ответ на тесте N. Решение прошло первые N-1 тестов и выдало неверный ответ на N-ом. Засчитывается неудачная попытка.
- Presentationerror – ошибка представления на тесте N. Тестирующая система не может оценить ответ как правильный или неправильный, т.к. не соблюдён формат выходных данных. Перечитайте раздел «Вывод» условия задачи.
- Runtimeerror – ошибка исполнения на тесте N. Выполнение программы на N-ом тесте прервалось с ошибкой («Программа выполнила недопустимую операцию и будет закрыта. «). Наиболее популярные причины: обращение за границы массива, деление на ноль, переполнение стека и т.п.
- Time limit – превышено ограничение времени на тесте N. Решение работало слишком долго (или вовсе зависло) на N-ом тесте. Наиболее популярные причины: неэффективный алгоритм решения задачи; ошибка в программе.
- Memorylimit – превышено ограничение объёма используемой памяти на тесте N. При решении сделана попытка использовать больше памяти, чем установлено условием задачи.
Тренировочный тур
Чтобы участники могли заранее ознакомиться с тестирующей системой, она будет запущена в тестовом режиме с 1-го по 13-е марта. В этот период предлагается всем будущим участникам зайти на сайт http://contest.khsu.ru, зарегистрироваться под любым именем и решить представленные там задачи, отправляя решения на проверку.
Предлагается начать решение с задачи «A+B». Она находится в разделе «Сборники», «Задачи с сайта Olympiads.ru». В разделе «Помощь» вы найдёте примеры её решений.
По окончании тренировочного тура , 14 марта, все задачи, отправленные решения задач и все учётные записи будут удалены. Результат тренировочного тура не учитывается при определении результатов 1 или 2 этапов Турнира.
1-й этап (очное и заочное участие школьников)
Тур будет проходить на сайте http://contest.khsu.ru. Учётные записи будут внесены в систему заранее на основе данных, введённых зарегистрировавшимися до 10 марта на сайтах http://clck.ru/8_rkG и http://clck.ru/8_rgq.
На 1 этапе для школьников проводится один тур, общий для очных и заочных участников, с одним набором задач, в одно время (см. расписание) и общей рейтинговой таблицей.
Решение задач нужно сдавать на сайте http://contest.khsu.ru в разделе «Турниры», «ХГУ 2013 Школьники». Условия задач будут выложены с началом тура на сайте в указанном разделе в форматах Microsoft Word и PDF. Участники очного тура 1-го этапа, предварительно зарегистрировавшиеся на очное участие, получат твёрдую копию условий задач.
Результаты, полученные к концу тура, 1 этапа, считаются предварительными. Окончательные результаты 1 этапа выставляются на сайт и оглашаются на занятиях школы программистов 24 марта.
Незадолго до начала тура 1 этапа (см. расписание) будет запущен пробный тур для проверки работоспособности тестирующей системы, и чтобы дать возможность участникам освоиться на рабочих местах. В процессе пробного тура участники могут решать и отправлять на проверку любые задачи, представленные в системе. Результат пробного тура никак не учитывается.
К началу основного тура 1 этапа все отправленные решения и лишние задачи будут удалены из системы.
По окончания основного тура 1 этапа участники приглашаются на разбор задач.
2-й этап
Тур 2 этапа будет проходить на сайте http://contest.khsu.ru. Учётные записи будут внесены в систему заранее на основе данных, введённых зарегистрировавшимися до 4 апреля на сайте http://clck.ru/8_Wg6 .
На 2-м этапе возможно только очное участие. Все участники получают твёрдую копию условий задач. Некоторые материалы могут быть дополнительно предоставлены в электронном виде.
Окончательные результаты объявляются в день проведения тура после разбора задач.
Дополнительные комментарии для участника
Оба этапа проводятся по правилам международного соревнования ACM ICPC. Процесс проверки решений полностью автоматический. Решение, присланное участником, засчитывается при условии, если оно прошло все заготовленные жюри тесты (выданы правильные ответы, решение уложилось в определенный объем времени и объем использованной памяти); в противном случае засчитывается неудачная попытка.
Чем больше задач сдаёт участник, тем выше его рейтинг. Участники, сдавшие одинаковое число задач, ранжируются с учётом кол-ва неудачных попыток и времени, затраченного на решение сданных решений задач.
Рейтинговая таблица обновляется в реальном времени. Однако за полчаса до окончания тура она может быть заморожена (участник не будет видеть, изменения, происходящие с другими участниками). Решение о заморозке жюри примет во время тура.
Если у участника во время тура появляются вопросы по задачам, их нужно задавать через тестирующую систему (см. раздел «Описание тестирующей системы» настоящих правил). Имейте в виду, что первый тест (а иногда и второй, и третий…) обязательно приводится в условии задачи (раздел «примеры»). Строго соблюдайте формат входных и выходных данных. Не стоит выводить лишних фраз вроде «Введите число N», и других, не предусмотренных условием задачам (раздел «Вывод»); в противном случае тестирующая система не поймёт ответ и зачтёт неудачную попытку с вердиктом «Presentation error» (ошибка представления).
Вводить входные данные нужно из консоли (клавиатура/стандартный ввод) или из файла input.txt – по желанию участника. Выводить данные – в консоль (на экран/стандартный вывод). Вывод в файл недопустим.
Ограничения на время и объём используемой памяти к каждой задаче выставляется таким образом, чтобы решения жюри проходили как минимум с двукратным запасом по этим параметрам.
Если вас интересует разбор задач, тесты, решения – обратитесь к жюри после тура.
Описание тестирующей системы
Стартовая страница выглядит так:
Чтобы начать работать с сайтом, следует слева выбрать свою учётную запись и ввести пароль. Пароль должен быть известен только участнику. Если у вас еще нет учётной записи, создайте её, нажав на ссылку «зарегистрироваться», где нужно будет задать имя и пароль учётной записи.
На тренировочном туре вы должны создать себе учётную запись, зарегистрировавшись под любым именем, и задав себе любой пароль. На турах 1-го и 2-го этапа учётные записи участников будут внесены в систему заранее, поэтому участнику нужно будет только выбрать из списка своё имя и ввести свой пароль.
Если пароль введён правильно, то вы увидите страницу участника:
Предлагаем начать работу с раздела «Сборники»:
Выберите сборник «Задачи с сайта Olympiads.ru»; вы увидите перечень задач в этом сборнике:
Обратите внимание на ссылку «Обсудить» напротив каждой задачи. Нажав на неё можно задать вопрос жюри. Подробнее см. ниже.
Выберите задачу «A+B». Страница задачи выглядит примерно так:
В верхней части – условие задачи. Чтобы отправить решение задачи, можно либо вставить исходный код в поле «Текст попытки», либо (справа от этого поля) выбрать «файл попытки» (нужно будет нажать кнопку «Выберите файл»):
Затем выберите, на каком языке написана ваша программа:
Ошибка исполнения на тесте 1
Что значит данная ошибка? Проверил: 1. Это не деление на 0, т.к в коде нет деления вообще. 2. За пределы массива не вылезаю, т.к массив в разы больше, чем входные данные. 3. Переполнение тоже невозможно. 4. За передел памяти тоже не выхожу. Я тут недавно сижу, но интересно, а нет ли поста с полным описание каждой ошибки? Буду очень благодарен за помощь.
Приведенный ниже код с помощью GNU C ++ 11 компилятор и код работает нормально, но я не знаю, как это работает?
Я считаю , что нет никакого способа , чтобы выполнить system(«cls»); на машине судьи — просто удалить , что из кода.
Кроме того, вы выходите за пределы здесь , когда i == n — 1 :
Хотя технически не выходить за пределы массива , потому что n , но в любом случае вы обращаетесь неинициализированный элемент массива.
Перейти к контенту
Почему выдает «ошибка исполнения»
31.05.2013, 00:40. Показов 4253. Ответов 1
Доброго времени суток. У меня проблема. Сегодня написал свою первую программу на java и отправил решение на проверку на сайт Codeforces.ru . Но решение не прошло, вердикт «ошибка исполнения». Проверяю на компе, все работает. Почему выдает такую ошибку?
Вот сам код
Java | ||
|
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Используя ссылку ниже
http://codeforces.com/problemset/problem/556/B
Приведенный ниже код с использованием компилятора GNU C ++ 11 и этот код работает нормально
но я не знаю, как это работает?
#include<iostream>
#include<conio.h>
#include<windows.h>
int test(long int n,long int number[])
{
int flag=0;
for(int i=0;i<n;i++)
{
if(number[i+1]==number[i]+1)
flag++;
}
if(flag==n-1)
return 1;
else
return 0;
}
void rot_gears(long int n,long int number[])
{
system("cls");
int t;
for(long z=0;z<n*n;z++)
{
for(long i=0;i<n;i++)
{
if(i%2==0)
{
if(number[i]==n-1)
{
number[i]=0;
}
else
number[i]++;
}
else if(i%2!=0)
{
if(number[i]==0)
number[i]=n-1;
else
number[i]--;
}
}
t=test(n,number);
if(t==1)
break;
// output(n,number);
//cout<<"nn";
}
if(t)
std::cout<<"YES";
else
std::cout<<"NO";
}
int main()
{
long int n,teeth,number[10000];
std::cin>>n;
std::cin>>teeth;
for(long int i=n-1;i>=0;i--)
{
number[i]=teeth%10;
teeth/=10;
}
// output(n,number);
rot_gears(n,number);
return 0;
}
1
Решение
Я считаю, что нет способа казнить system("cls");
на машине судьи — просто удалите это из кода.
Также вы выходите за пределы здесь, когда i == n - 1
:
for(int i=0;i<n;i++)
{
if(number[i+1]==number[i]+1)
// ^^^^^ here
Хотя технически вы не выходите за пределы массива, потому что n <= 1000
, но в любом случае вы получаете доступ к неинициализированному элементу массива.
1
Другие решения
У меня есть прога которая находит минимум каждой строки и добавляет его в список.
Локально у меня все работает, но на проверяющей системе codeforces выдает ошибку.
Traceback (most recent call last):
File "program.pys3", line 1, in <module>
n = int(input())
EOFError: EOF when reading a line
вот сам код
n = int(input())
a = []
b = []
for i in range(n):
a.append([str(j) for j in input().split()])
for i in range(len(a)):
for j in range(1):
if len(a[i][0]) == 1:
b.append(a[i][0])
else:
for v in range(len(a[i][0])):
l = min(a[i][0][j], a[i][0][j+1])
a[i][0] = a[i][0][:j] + l + a[i][0][j+1:]
a[i][0] = a[i][0][:j+1] + l + a[i][0][j+2:]
b.append(l)
t_str = ''.join(map(str, b))
print(t_str)
задан 8 сен 2020 в 8:25
VladVlad
396 бронзовых знаков
3
Вы когда у себя проверяете — число n с клавиатуры вводите? Или из файла?
Может быть, дело в том, что на проверяющей системе некому ввести число?
Обычно указывают имя файла input.txt
, из которого вводятся значения в программу. У вас нигде этого файла не указано. Поэтому и ошибка в первой же строке: Хозяин, я файл найти не могу! не знаю, какой искать!
ответ дан 8 сен 2020 в 8:32
S.H.S.H.
10.7k1 золотой знак15 серебряных знаков38 бронзовых знаков
3
Я пытаюсь решить проблему 1A для codeforces
Но я продолжаю получать Тест: # 1, время: 0 мс, память: 1828 КБ, код выхода: 1, код выхода из проверки: 0, вердикт: RUNTIME_ERROR Вы можете проверить мою запись здесь и найти мой код ниже, я пытался запустить программа локально, и она работает нормально, и она прошла тест-кейс на сайте
#include<stdio.h>
int calculateSquare(int n , int m , int a){
int length=0;
int width = 0;
if(n%a != 0){
length = (n/a)+1 ;
}
else{
length = n/a ;
}
if(m%a != 0){
width = (m/a)+1 ;
}
else{
width = m/a ;
}
return length*width ;
}
void main(){
int n,m,a ;
scanf("%d %d %d",&n,&m,&a);
int output = calculateSquare(n,m,a);
printf("%d",output);
}
3 ответа
Лучший ответ
int calculateSquare(int n , int m , int a)
Возвращаемый тип: int
и возвращаемое значение: length*width
В худшем случае a
будет 1
и n
, m
будет 10 9 , как указано в проблема
< Сильный > Ввод
Вход содержит три положительных целых числа в первом строка: n, m и a (1 ≤ n, m, a ≤ 10 9 ).
Таким образом, возвращаемый тип int
не может содержать возвращаемое значение для такого случая.
Лучше использовать long long int
, если компиляция соответствует стандарту C99.
1
Meninx — メネンックス
15 Фев 2017 в 01:31
При попытке «побить время» лучше не использовать «дорогие» функции I.O.
Предложить следующие две функции:
#include <stdio.h>
void fastRead( size_t *a );
void fastWrite( size_t a );
inline void fastRead(size_t *a)
{
int c=0;
// note: 32 is space character
while (c<33) c=getchar_unlocked();
// initialize result value
*a=0;
// punctuation parens, etc are show stoppers
while (c>47 && c<58)
{
*a = (*a)*10 + (size_t)(c-48);
c=getchar_unlocked();
}
//printf( "%s, value: %lun", __func__, *a );
} // end function: fastRead
inline void fastWrite(size_t a)
{
char snum[20];
//printf( "%s, %lun", __func__, a );
int i=0;
do
{
// 48 is numeric character 0
snum[i++] = (char)((a%10)+(size_t)48);
a=a/10;
}while(a>0);
i=i-1; // correction for overincrement from prior 'while' loop
while(i>=0)
{
putchar_unlocked(snum[i--]);
}
putchar_unlocked('n');
} // end function: fastWrite
0
user3629249
15 Фев 2017 в 11:03
Я изменил ваш код, как указано ниже, который, кажется, работает нормально:
#include <stdio.h>
long long int calculateSquare(long n , long m , long a){
long length=0;
long width = 0;
if(n%a != 0){
length = (n/a)+1 ;
}
else{
length = n/a ;
}
if(m%a != 0){
width = (m/a)+1 ;
}
else{
width = m/a ;
}
long long store = length*widthl
return store;
}
int main(){
long int n,m,a ;
scanf("%ld %ld %ld", &n, &m, &a);
long int output = calculateSquare(n,m,a);
printf("%ldn", output);
return 0;
}
0
Jarvis
15 Фев 2017 в 01:54
Я пытаюсь решить эту проблему:
http://codeforces.com/contest/664/problem/B
Вот мой код: http://ideone.com/fWgQEn
Я получаю Runtime Error на тестовом примере 5, хотя мой ответ правильный, и я печатаю его правильно.
Может ли кто-нибудь сказать мне, что может быть причиной этого?
#include<bits/stdc++.h>
using namespace std;
int main(){
int i = 0, pos = 1, neg = 0, n;
string str;
char x;
while(1){
cin >> x;
if(x == '=') break;
else if (x == '?') continue;
else if (x == '+') pos++;
else if (x == '-') neg++;
str[i++] = x;
}
str[i] = '';
// cout << str[0] << str[1] << str.size() << endl;
cin >> n;if (!(pos * n - neg >= n && pos - neg * n <= n))
cout << "Impossible" << endl;else{
cout << "Possiblen";
int neg_sum, pos_sum;
for (int i = neg; i <= neg * n; i++){
pos_sum = n + i;
if(pos_sum <= pos * n && pos_sum >= pos) {
neg_sum = i; pos_sum = n + i;
break;
}
}
// cout << str.size() << endl;
// cout << pos_sum << " " << neg_sum << endl;
int pos_count = 1, neg_count = 0;
for(int i = -1 ; i < pos + neg - 1; i++){
// cout << "i " << i << " " << str[i] <<endl;
if(!(i + 1)){
if(pos == 1) cout << pos_sum << " ";
else cout << pos_sum / (pos - 1) << " ";
}
else{
if(str[i] == '+'){
if(pos_count++ != pos -1) cout << "+ "<< pos_sum / (pos - 1) << " ";
else cout << "+ "<< pos_sum % (pos - 1) << " ";
}
else{
if(neg == 1) cout << "- " << neg_sum << " ";
else if(neg_count++ != neg -1) cout << "- "<< neg_sum / (neg - 1) << " ";
else cout << "+ "<< neg_sum % (neg - 1) << " ";
}
}
}
cout << "= " << n;
}
return 0;
}
TIA !!
Доброго времени суток. У меня проблема. Сегодня написал свою первую программу на java и отправил решение на проверку на сайт Codeforces.ru . Но решение не прошло, вердикт «ошибка исполнения». Проверяю на компе, все работает. Почему выдает такую ошибку?
Вот сам код
Java | ||
|
Используя ссылку ниже
http://codeforces.com/problemset/problem/556/B
Приведенный ниже код с использованием компилятора GNU C ++ 11 и этот код работает нормально
но я не знаю, как это работает?
#include<iostream>
#include<conio.h>
#include<windows.h>
int test(long int n,long int number[])
{
int flag=0;
for(int i=0;i<n;i++)
{
if(number[i+1]==number[i]+1)
flag++;
}
if(flag==n-1)
return 1;
else
return 0;
}
void rot_gears(long int n,long int number[])
{
system("cls");
int t;
for(long z=0;z<n*n;z++)
{
for(long i=0;i<n;i++)
{
if(i%2==0)
{
if(number[i]==n-1)
{
number[i]=0;
}
else
number[i]++;
}
else if(i%2!=0)
{
if(number[i]==0)
number[i]=n-1;
else
number[i]--;
}
}
t=test(n,number);
if(t==1)
break;
// output(n,number);
//cout<<"nn";
}
if(t)
std::cout<<"YES";
else
std::cout<<"NO";
}
int main()
{
long int n,teeth,number[10000];
std::cin>>n;
std::cin>>teeth;
for(long int i=n-1;i>=0;i--)
{
number[i]=teeth%10;
teeth/=10;
}
// output(n,number);
rot_gears(n,number);
return 0;
}
1
Решение
Я считаю, что нет способа казнить system("cls");
на машине судьи — просто удалите это из кода.
Также вы выходите за пределы здесь, когда i == n - 1
:
for(int i=0;i<n;i++)
{
if(number[i+1]==number[i]+1)
// ^^^^^ here
Хотя технически вы не выходите за пределы массива, потому что n <= 1000
, но в любом случае вы получаете доступ к неинициализированному элементу массива.
1
Другие решения
I was trying to do the first problem in codeforces just to be familiar with it.
It gives results when I try it on my Ipython notebook, but always gives runtime error when I upload it on codeforces. Can anyone help?
Problem:
Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the occasion of the city’s anniversary, a decision was taken to pave the Square with square granite flagstones. Each flagstone is of the size a × a.
What is the least number of flagstones needed to pave the Square? It’s allowed to cover the surface larger than the Theatre Square, but the Square has to be covered. It’s not allowed to break the flagstones. The sides of flagstones should be parallel to the sides of the Square.
Input:
The input contains three positive integer numbers in the first line: n, m and a (1 ≤ n, m, a ≤ 109).
Output:
Write the needed number of flagstones.
Sample testcase:
Input - 6 6 4 , Output - 4
My attempt:
a = map(int,raw_input().split())
l,b,s = a[0],a[1],a[2]
print(((l+s-1)/s)*((b+s-1)/s))
EDIT:
There is not much explanation about the error other than «Runtime Error on test 1». Also, if it helps, time used was 92 ms, and memory used was 0 KB.