Codeforces ошибка компиляции

Здравствуй, Сообщество Codeforces! Я довольно-таки часто сталкиваюсь с проблемой: ловлю СЕ, когда на компе все нормально. Этот СЕ связан с СТЛ, а точнее с algorithm. Я не знаю как, но когда я подключаю string или vector некоторые функции (sort, reverse) включаются автоматически. Использую я Far + mingw. Ну естественно, без алгоритма у меня все компилится, я отправляю, а на сервере — СЕ. То есть потеря времени. Кто знает как решить эту проблему (м.б. какие-нибудь параметря компилятору надо передавать?). Я начал использовать заготовки, куда все инклудил, но иногда кажется проще без них. Заранее благодарен всем, кто ответит.

Это подробная и формальная версия правил соревнований Codeforces. Если вы хотите просто ознакомиться с правилами, то рекомендуем вам предварительно прочесть формат соревнований Codeforces. Организаторы могут немного модифицировать правила для конкретных раундов, тогда эта информация содержится в анонсе раунда. Приведенные ниже правила следует рассматривать как правила по-умолчанию.

Общие сведения о раунде

  1. Для участия в раунде необходимо зарегистрироваться. Регистрация на раунд открывается за 6 часов до его начала и заканчивается за 5 минут до его начала, если в информации по раунду не оговорено другое.

  2. Система проведения соревнований имеет два интерфейса: русский и английский, между которыми участники могут переключаться.

  3. Продолжительность раунда составляет 2 часа, если в информации по раунду не оговорена другая продолжительность.

  4. Участникам для решения предоставляется 5 задач, если в информации по раунду не оговорено иное количество задач.

  5. Условия задач доступны на двух языках: русском и английском.

  6. Условия всех задач становятся доступными для прочтения в момент начала раунда.

  7. Перед началом соревнования все зарегистрированные участники случайным образом делятся на комнаты. В каждую комнату попадают примерно 40 участников.

Вопросы по задачам

  1. Во время соревнования участники имеют право задавать вопросы жюри соревнований через систему. Вопросы могут касаться ошибок, неточностей и двусмысленностей в условии.

  2. Вопрос должен быть задан на одном из двух языков: русском или английском. Вопрос должен быть понятным и грамотно написанным. В противном случае жюри оставляет за собой право не рассматривать вопрос по существу и ответить «без комментариев».

  3. Жюри соревнований может ответить на заданный вопрос в произвольной текстовой форме.

  4. Ответ «без комментариев» означает, что вопрос не соответствует пункту 2, жюри считает, что вопрос не относится к условию задачи или ответ на него содержится в условии задачи или в правилах соревнований.

  5. Ответ на вопрос доступен только участнику, его задавшему, за исключением случаев, когда жюри соревнований принимает решение о том, что вопрос является существенным для всех участников. В таком случае вопрос и ответ на него жюри имеет право опубликовать всем участникам.

Решение задач

  1. Решением задачи является программа, написанная на одном из следующих языков программирования (разные задачи можно решать на разных языках программирования, список языков может быть расширен):

    • С/С++
    • Delphi/Pascal
    • Java
    • С#
    • Python
    • Ruby
    • PHP
    • OCaml
    • Haskell
    • Perl
    • Scala
    • D
    • Go
  2. Требования к программам:

    • Программа должна целиком содержаться в одном файле.
    • Если в условии задачи не заданы имена входных или выходных файлов, необходимо считывать данные со стандартного потока ввода и выводить данные на стандартный поток вывода.
    • Запрещается осуществлять работу с сетью.
    • Запрещается производить операции ввода-вывода, за исключением открытия, закрытия, чтения и записи файлов и стандартных потоков, которые указаны в условии задачи для осуществления ввода-вывода.
    • Запрещается запускать другие программы и создавать процессы.
    • Запрещается изменять права доступа в файловой системе.
    • Запрещается работать с директориями, отличными от текущей.
    • Запрещается работать с реестром операционной системы.
    • Запрещается создавать и использовать элементы GUI (окна, диалоги и т.п.)
    • Запрещается работать с внешними устройствами.
    • Запрещается производить любые действия, отличные от вышеперечисленных, которые тем или иным образом могут дестабилизировать работу системы.
  3. По мере готовности решений участники отправляют программы через интерфейс системы соревнования и продолжают работу над другими задачами. После получения решения и его проверки тестирующая система незамедлительно сообщает результат проверки решения.

  4. Участник может видеть результаты проверки решений на соответствующей вкладке системы соревнования.

Компиляция решений

  1. При отправке решения участник выбирает компилятор, который тестирующая система должна использовать для компиляции программы. Тестирующая система использует для проверки следующие компиляторы (жюри имеет право расширять список компиляторов по своему усмотрению или же заменять версии компиляторов на более новые):

    • MinGW GNU C++ 4
    • MinGW GNU C 4
    • Microsoft Visual C++ 2010
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2
    • Java 6, 7
    • Ruby 1
    • Python 2
    • PHP 5
    • Haskell GHC 6
    • Objective Caml 3
    • Scala 2
    • Perl 5
    • Go 1
    • MS C# .NET 4
  2. Организаторы соревнований не несут ответственности за проблемы, вызванные несоответствием версии компилятора в тестирующей системе и версии компилятора, который использовался участником при разработке программы. Для того, чтобы частично избежать подобных проблем, предусмотрена возможность запуска кода участника на стороне сервера. Для запуска надо отослать на сервер программу и входные данные. Через некоторое время тестирующая система сообщит результат работы программы и выходные данные.

  3. Компиляция и запуск решений производятся под ОС Windows. Переводы строк задаются парой символов #13#10. После последней строки файла или входного потока (непосредственно перед его концом) находится перевод строки.

  4. Если произошла ошибка компиляции, то участнику сообщается результат проверки <Ошибка компиляции>, а также лог компилятора.

  5. Размер файла с исходным кодом не должен превышать 64 килобайт.

  6. Тестирующая система использует компиляторы командной строки для компиляции решений. Строки компиляции для разных компиляторов приведены в таблице:

компилятор строка компиляции (запуска)
GNU C++ 4 g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,—stack=268435456 -O2 -o %name%.exe %1
GNU C 4 gcc.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -fno-asm -lm -s -Wl,—stack=268435456 -O2 -o %name%.exe %1
GNU C++ 4 (C++0x) g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,—stack=268435456 -O2 -std=c++0x -D__USE_MINGW_ANSI_STDIO=0 -o %name%.exe %1
MS VS C++ 2010 cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE %1
Free Pascal 2 fpc -n -O2 -Xs -Sgic -viwn -dONLINE_JUDGE -Cs67107839 -Mdelphi -XS %1 -o%name%.exe
Delphi 7 dcc32 -Q -$M1048576,67107839 -DONLINE_JUDGE -cc %1
C# Mono 2 dmcs -define:ONLINE_JUDGE -o+ -out:%name% %1
Java 6,7 javac -cp «.;*» %1, java.exe -Djava.security.manager -Djava.security.policy=java.policy -javaagent:invokeagent.jar -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s
Ruby 1 ruby.exe -c %1
Python 2 python -c «compile(open(‘%1’).read(), ‘%1’, ‘exec’)»
PHP 5 php.exe -l %1
Haskell GHC 6 ghc —make -O -o %name% %1
OCaml 3 ocamlopt nums.cmxa str.cmxa -pp camlp4o -unsafe -o %name%.exe-ocaml %1
Scala 2 См. Java
Perl perl.exe %s
D dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O %s
Go go build %1

Проверка решений

  1. Во время соревнования проверка решений осуществляется на небольшом наборе тестов, которые называются претестами.

  2. Результат проверки решения на претестах сообщаются участнику сразу же после проверки.

  3. Каждый тест представляет из себя входные данные для программы участника. Ограничения на содержащиеся в тестах входные данные указываются в условии задачи.

  4. Во всех задачах указано максимальное время работы программы на одном тесте и максимальный объем памяти, которую разрешается использовать.

  5. Тестирование производится путем последовательного запуска программы на каждом из тестов.

  6. Тест считается пройденным, если запуск программы завершился с кодом возврата 0, процесс уложился в отведенные ограничения на время и память и при этом программа выдала правильный ответ на данный тест. Ниже в таблице приведены наиболее частые вердикты возможных ошибок.

Вердикт системы Описание ошибки
Превышено ограничение памяти программа пытается использовать больше памяти, чем указано в условии задачи
Превышено ограничение времени программа не завершила работу за указанное в условии задачи время
Ошибка времени исполнения программа завершилась с ненулевым кодом возврата (произошло деление на 0, выход за границы массива и проч.)
Неправильный ответ неверный ответ
Решение «зависло» программа продолжительное время абсолютно не расходовала процессорное время
Отказ тестирования решение не удалось запустить, возможно, из-за ошибки тестирования наиболее вероятная причина — ошибка в программе (например, использование сверхбольших массивов)
  1. В случае, если решение прошло все претесты, участнику сообщается результат проверки «Претесты пройдены». В противном случае результат проверки, сообщаемый участнику, состоит из номера первого по порядку претеста, который не был пройден, и вердикта тестирующей системы.

  2. Если результатом проверки решения является «Ошибка компиляции», «Отказ тестирования» или решение не прошло первый претест, то это решение никак не учитывается при подсчете результатов.

  3. Решение по одной и той же задаче можно отправлять несколько раз.

  4. Решение, прошедшее все претесты, называется подтвержденным решением данного участника по данной задаче.

  5. В случае, если участник отсылает решение по некоторой задаче, проходящее все претесты, второй или более раз, то подтвержденным решением этого участника по этой задаче считается последнее из них. Все остальные решения будут учитываться как неудачные попытки.

  6. В случае, если решение участника по некоторой задаче проходит все претесты, задача считается предварительно решенной этим участником, и вычисляется предварительный балл участника за данную задачу. Вычисление балла проходит по следующей схеме:

    • каждую минуту стоимость задачи уменьшается: стоимость задачи падает на X/250 балла в минуту (где X первоначальная стоимость задачи), например, задача первоначальной стоимости 500 баллов дешевеет со скоростью 2 балла в минуту;
    • балл участника за задачу равен текущей стоимости задачи в баллах за вычетом штрафа;
    • штраф определяется как количество решений этого участника по этой задаче, сделанных ранее, умноженное на 50 баллов;
    • балл участника за задачу не может быть меньше, чем 30% от изначальной стоимости задачи.

Взломы

  1. В любой момент участник может заблокировать для себя любую предварительно решенную им задачу. Это означает, что участник больше не имеет права отсылать решения по этой задаче.

  2. Заблокировав задачу, участник получает право просматривать исходные коды подтвержденных решений по этой задаче участников, которые находятся с ним в одной комнате. После просмотра кода чужого решения, участник может предложить тест, который, по его мнению, не пройдет просмотренное решение. Эта процедура далее называется взломом решения. Тест может быть задан вручную, либо с использованием программы-генератора, которая выводит тест в стандартный поток вывода. Предложенный тест автоматически проверяется на соответствие ограничениям, указанным в условии задачи. Если ограничения не выполняются, то участнику сообщается об этом и попытка взлома игнорируется. Если же ограничения выполнены, то производится запуск взламываемого решения на предложенном тесте. В случае, если решение не проходит тест, то взлом считается успешным, иначе — неуспешным. Также взлом игнорируется, если в момент его обработки взламываемое решение не является последней подвержденной попыткой участника по задаче. Например, такое может произойти, если кто-то успел взломать это решение до данного взлома или участник успел перепослать решение.

  3. За успешный взлом участник получает 100 баллов. За неуспешный взлом участник получает штраф в 50 баллов.

  4. В случае успешного взлома для участника, чье решение взломали, происходит следующее:

    • задача больше не считается предварительно им решенной
    • его предварительный балл за эту задачу становится равным 0
    • тест из взлома добавляется в набор претестов по этой задаче для этого конкретного участника
  5. Если участник заблокировал задачу, но его решение по ней взломали, то у него сохраняется возможность взламывать чужие решения по этой задаче.

Что можно делать, а что нельзя

  1. Во время раунда участникам разрешается пользоваться любой литературой и личными записями, а также использовать заранее написанный код.

  2. Запрещается использовать чужой код в своем решении. С большими ограничениями можно пользоваться и чужим заранее написанным кодом, ознакомьтесь с подробностями по по ссылке.

  3. Разрешается пользоваться любыми источниками информации в интернете (но копировать-вставлять чужой код нельзя).

  4. Запрещается обфусцировать код решения, а также создавать препятствия для его чтения и понимания. То есть запрещено использование любых специальных приемов, призванных усложнить чтение кода с целью понимания его работы.

  5. Участникам запрещается общаться на темы, связанные с задачами, с кем бы то ни было, в том числе с другими участниками. Разрешается только задавать вопросы жюри через систему (см. раздел «Вопросы»).

  6. Организаторы соревнований имеют право отслеживать честность поведения участников различными методиками и при выявлении нарушений — дисквалифицировать участника.

  7. Все программы, отправленные участниками на проверку, должны пытаться решить задачу, а не нарушить правила или дестабилизировать работу тестирующей системы. В случае намеренной попытки дестабилизации работы тестирующей системы участник будет дисквалифицирован.

  8. Запрещается использовать какие-либо технические способы (включая, но не ограничиваясь, OCR, средства анализа трафика, браузерные плагины и проч.) взаимодействия со взламываемыми решениями других участников. Единственный допустимый способ анализа взламываемого решения — его зрительный анализ. Допускается ручной перенабор взламываемого решения или каких-либо его частей с целью локального запуска.

  9. Любое нарушение этих правил, правил из раздела ЧАВО, правил из анонса соревнования или подтвержденных в процессе регистраций может повлечь штрафные санкции вплоть до дисквалификации и бана. Будьте честными!

Таблица текущих результатов

  1. Во время соревнования участникам доступна таблица текущих результатов. В ней отображено текущее положение участника в соревновании. В таблице можно увидеть заблокировано или нет решение и историю попыток пользователя.

  2. Все промежуточные результаты являются неофициальными.

Финальное тестирование и окончательные результаты

  1. После завершения соревнования публикуются результаты тестирования решений участников на основном наборе тестов.

  2. На основном наборе тестов тестируются подтвержденные решения, то есть те, которые одновременно:

    • прошли все претесты и являются последними из таковых (от участника по задаче);
    • не были взломаны.
  3. Задача считается решенной участником, если решение участника прошло все тесты из основного набора тестов.

  4. За решенную задачу участник получает балл, равный предварительному баллу его решения за эту задачу. Балл за нерешенную задачу равен 0.

  5. Результатом участника считается сумма баллов за все решенные им задачи и баллов за взломы.

  6. В окончательной таблице результатов участники располагаются в порядке убывания результата. В случае, если два или более участников имеют одинаковый результат, они делят одно и то же место.

  7. Тестирование осуществляется на компьютерах Core 2 Duo E6750, 2.66 Ghz, 3Gb памяти.

Интеллектуальная собственность

  1. Нижеприведенные правила используются каждый раз, когда для раунда нет специальных правил. Участники сохраняют за собой владение всеми правами интеллектуальной и промышленной собственности (включая моральные права) после предоставления решения.

  2. В качестве условия для представления, участник передает Codeforces, ее дочерним компаниям, агентствам и компаниям-партнерам не подлежащую отмене, действующую во всех странах, безвозмездную, неэксклюзивную лицензию на использование воспроизведение, адаптацию, модификацию, публикацию, публичное исполнение, создание производных материалов, обнародование решения.

  3. Участники предоставляют решение на условиях «как есть», без предоставления каких-либо гарантий или условий либо ни прямого, ни косвенного характера, включая, без ограничений, никаких гарантий или условий на названия, никаких гарантий относительно коммерческого использования или пригодности для тех или иных целей и ненарушения прав.

Просьба сообщить в комментариях, если мы забыли какие-то аспекты. Если после анализа комментария, текст будет обновлен, а соответствующий комментарий станет неактуальным, то такие комментарии мы будем через некоторое время скрывать (чтобы не захламливать ленту комментариев неактуальными вопросами/замечаниями).

Перейти к контенту

8 years ago,
#
|



Rev. 3


 


Vote: I like it
+8
Vote: I do not like it

You are using the to_string method to convert an integer to a string. This function only exists in C++11 and doesn’t exist in previous versions. However, you are submitting in GNU C++, not C++ 11. A solution is to change the programming language you are submitting into GNU C++0x.

8 years ago,
#
|


Vote: I like it
0
Vote: I do not like it

In Codeforces, you can submit your code in Custom Invocation to view the error information outputted by compiler when you got «strange» Compilation Error.

2 years ago,
#
|


Vote: I like it
+11
Vote: I do not like it

Check your header file sometimes our computer compiler run our code without including the header file(like we can use string related function without using string.h header file) but an online judge can’t run a code properly without including the header file. So, check the header file :-).

  • 2 years ago,
    #
    ^
    |


    Vote: I like it
    +20
    Vote: I do not like it

    thanks for replying after 6 years :)

    • 2 years ago,
      #
      ^
      |


      Vote: I like it
      +8
      Vote: I do not like it

      Am still looking at comments though after 6 years haha

      • 21 month(s) ago,
        #
        ^
        |


        Vote: I like it
        0
        Vote: I do not like it

        When u are submitting try to see which programming language is set.

        • 21 month(s) ago,
          #
          ^
          |


          Vote: I like it
          0
          Vote: I do not like it

          The it liked MS C++, but I wanted to stick with GNU C++, so I refactored my code. I still got wrong answers afterward, but finally got an accepted answer at Submission #8759965 — Codeforces

          • 4 months ago,
            #
            ^
            |


            Vote: I like it
            0
            Vote: I do not like it

            Did you get to solve the previous problem I ised -‘0’and it is giving compiler error

can anyone help me in this

#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
#define ll long long int
struct points{
ll a;
ll b;
};
int cos(points x , points y)
{
    return x.b<y.b;
}
int main()
{
   ll n,r,avg,i,j,k;
   points pt[100005];
   cin>>n>>r>>avg;
   for(i=0;i<n;i++)
   {
       cin>>pt[i].a>>pt[i].b;
   }
   sort(pt,pt+n,cos);
   ll sum=avg*n;
   for(i=0;i<n;i++)sum-=pt[i].a;
   if(sum<=0)cout<<"0n";
   else
   {

   ll ans=0;
   for(i=0;i<n;i++)
   {
       if(sum==0)break;
       else
       {
           if(sum>r-pt[i].a)
           {
               ans=ans+pt[i].b*(r-pt[i].a);
               sum=sum-(r-pt[i].a);
           }
           else
           {
               ans=ans+sum*pt[i].b;
               sum-=sum;
           }
       }
   }
   cout<<ans<<endl;
   }
    return 0;
}

when im compiling in my system its working fine and getting the correct output but when i’m submitting in codeforces under GNUC++ 11 im getting compllation error? can u help me

timrau's user avatar

timrau

22.4k4 gold badges52 silver badges64 bronze badges

asked May 30, 2015 at 17:40

rap's user avatar

4

Your compare function, cos(), collides with function in standard <cmath>. Rename it and it will compile.

answered May 30, 2015 at 17:49

timrau's user avatar

timrautimrau

22.4k4 gold badges52 silver badges64 bronze badges

0

A and B are preparing themselves for programming contests.

B loves to debug his code. But before he runs the solution and starts debugging, he has to first compile the code.

Initially, the compiler displayed n compilation errors, each of them is represented as a positive integer. After some effort, B managed to fix some mistake and then another one mistake.

However, despite the fact that B is sure that he corrected the two errors, he can not understand exactly what compilation errors disappeared — the compiler of the language which B uses shows errors in the new order every time! B is sure that unlike many other programming languages, compilation errors for his programming language do not depend on each other, that is, if you correct one error, the set of other error does not change.

Can you help B find out exactly what two errors he corrected?

Input

The first line of the input contains integer n (3 ≤ n ≤ 105) — the initial number of compilation errors.

The second line contains n space-separated integers a1, a2, …, an (1 ≤ ai ≤ 109) — the errors the compiler displayed for the first time.

The third line contains n - 1 space-separated integers b1, b2, …, bn - 1 — the errors displayed at the second compilation. It is guaranteed that the sequence in the third line contains all numbers of the second string except for exactly one.

The fourth line contains n - 2 space-separated integers с1, с2, …, сn - 2 — the errors displayed at the third compilation. It is guaranteed that the sequence in the fourth line contains all numbers of the third line except for exactly one.

Output

Print two numbers on a single line: the numbers of the compilation errors that disappeared after B made the first and the second correction, respectively.

Sample test(s)

Input

5
1 5 8 123 7
123 7 5 1
5 1 7

Input

6
1 4 3 3 5 7
3 7 5 4 3
4 3 7 5

Note

In the first test sample B first corrects the error number 8, then the error number 123.

In the second test sample B first corrects the error number 1, then the error number 3. Note that if there are multiple errors with the same number, B can correct only one of them in one step.

This topic is actually done last week. Today, I just encountered it, I wrote it.

When you write on Sunday, use sort, scanning methods, easy to think. This approach is JS, gives each set, and a set of and a set of sums is the answer.


 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     int n, read;
10     int sum1, sum2, sum3;
11     sum1 = sum2 = sum3 = 0;
12     scanf("%d", &n);
13     for(int i = 0; i < n; i++)
14     {
15         scanf("%d", &read);
16         sum1 += read;
17     }
18 
19     for(int i = 0; i < n-1; i++)
20     {
21         scanf("%d", &read);
22         sum2 += read;
23     }
24     cout << sum1 - sum2 << endl;
25 
26     for(int i = 0; i < n-2; i++)
27     {
28         scanf("%d", &read);
29         sum3 += read;
30     }
31 
32     cout << sum2 - sum3 << endl;
33     return 0;
34 }

View Code

519B Codeforces

A and B and compilation Errors

Solution in c++

#include <vector>

#include <algorithm>

#include <cstdio>

using namespace std;

int main()

{

    long e,t;

    scanf(«%ld»,&e);

    vector<long> initial(e),first(e-1),second(e-2),out(1);

    for(long i=0;i<initial.size();i++)scanf(«%ld», &initial[i]);

    for(long i=0;i<first.size();i++)scanf(«%ld»,&first[i]);

    for(long i=0;i<second.size();i++)scanf(«%ld»,&second[i]);

    sort(initial.begin(), initial.end());

    sort(first.begin(), first.end());

    sort(second.begin(), second.end());

    std::set_difference(initial.begin(), initial.end(), first.begin(), first.end(), out.begin());

    std::set_difference(first.begin(), first.end(), second.begin(), second.end(), &out[1]);

    printf(«%ld n%ldn», out[0], out[1]);

    return 0;

}

About
Mohamed Sobhi

My name is Mo.Sobhy ,I study at School excelling high school in Ain Shams ,Cairo
My hobbies is programming ,and web development ,playing chess and writing horror stories.

Следующий код работает нормально, пока я использую его в своем приложении блоков кода. Однако при решении проблемы «Четные шансы» в Codeforces путем отправки того же кода я получаю ошибку компиляции.

Ошибка: недопустимое преобразование из ‘void *’ в ‘long long int *’ [-fpermissive]

Я новичок в программировании на C. Итак, пожалуйста, помогите мне, как я могу исправить этот мой код.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
long long *arr, n, k, i, n1, n2, m;
scanf("%I64d%I64d", &n, &k);
arr=malloc(sizeof(long long)*n);
    n1=1;n2=2;
for(i=0;i<=n/2&&n1<=n;i++){
    arr[i]=n1;
    n1+=2;
    }
if(n%2!=0) m=n/2+1;
else m=n/2;
for(i=m;i<=n&&n2<=n;i++){
    arr[i]=n2;
    n2+=2;
    }
printf("%I64d", arr[k-1]);
free(arr);

return 0;
}

1 ответ

Лучший ответ

В кодовых блоках вы должны компилировать его как файл c. Но в Codeforces код компилируется как cpp.

arr=malloc(sizeof(long long)*n);

Когда вы компилируете эту строку на C, malloc выдаст указатель void*, который будет автоматически преобразован в long long*

Но в случае cpp явное преобразование должно выполняться. Чтобы запустить код в cpp:

arr = (long long*)malloc(sizeof(long long) * n);

Это сработает. Прочтите эту статью для получения разъяснений.


1

Ardent Coder
22 Фев 2020 в 16:55

A и B готовятся к олимпиадам про программированию.

B очень любит отлаживать свой код. Но перед тем, как запустить решение и начать отладку, код нужно сначала скомпилировать.

Изначально компилятор выдавал n ошибок компиляции, каждая из которых обозначается положительным целым числом. После некоторых усилий, B удалось исправить сначала одну, а потом еще одну ошибку.

Однако, несмотря на то, что B уверен, что исправил две ошибки, он не может понять, какие именно ошибки компиляции исчезли — компилятор языка, на котором пишет B, каждый раз выдает ошибки в новом порядке! B уверен, что в отличие от многих других языков программирования, ошибки компиляции для его языка программирования не зависят друг от друга, т. е. от исправления одной ошибки, множество остальных ошибок не изменяется.

А вы можете помочь B узнать, какие именно две ошибки он исправил?

может кто-нибудь помочь мне в этом

#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
#define ll long long int
struct points{
ll a;
ll b;
};
int cos(points x , points y)
{
return x.b<y.b;
}
int main()
{
ll n,r,avg,i,j,k;
points pt[100005];
cin>>n>>r>>avg;
for(i=0;i<n;i++)
{
cin>>pt[i].a>>pt[i].b;
}
sort(pt,pt+n,cos);
ll sum=avg*n;
for(i=0;i<n;i++)sum-=pt[i].a;
if(sum<=0)cout<<"0n";
else
{

ll ans=0;
for(i=0;i<n;i++)
{
if(sum==0)break;
else
{
if(sum>r-pt[i].a)
{
ans=ans+pt[i].b*(r-pt[i].a);
sum=sum-(r-pt[i].a);
}
else
{
ans=ans+sum*pt[i].b;
sum-=sum;
}
}
}
cout<<ans<<endl;
}
return 0;
}

Когда я компилирую в моей системе, она работает нормально и получает правильный вывод, но когда я отправляю в codeforces под GNUC ++ 11, я получаю ошибку компиляции? ты можешь мне помочь

0

Решение

Ваша функция сравнения, cos(), сталкивается с функцией в стандарте <cmath>, Переименуйте его, и он скомпилируется.

0

Другие решения

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Codeblocks ошибка iostream
  • Codeblocks не показывает ошибки
  • Codeblocks компилятор ошибка
  • Codeblocks выдает ошибку при запуске

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии