I was stuck in one question . I was getting half test case as correct answer , rest TLE . And as i know printf/scanf is faster than cout/cin , so i added printf/scanf everywhere . Now I am not even getting half answer as correct , instead i got a SIGSEGV error . Can anyone help me out where it went wrong
Can you please share the question link and also your approach?
1 Like
Pay attention to compiler warnings!
[simon@simon-laptop][18:59:18]
[~/devel/hackerrank/otherpeoples]>./compile-latest-cpp.sh
Compiling aadarshsinha-ENDCORR.cpp
+ g++ -std=c++14 aadarshsinha-ENDCORR.cpp -O3 -g3 -Wall -Wextra -Wconversion -DONLINE_JUDGE -D_GLIBCXX_DEBUG -fsanitize=undefined -ftrapv
aadarshsinha-ENDCORR.cpp: In function ‘int main()’:
aadarshsinha-ENDCORR.cpp:13:24: warning: format ‘%d’ expects argument of type ‘int*’, but argument 2 has type ‘ll {aka long long int}’ [-Wformat=]
scanf("%d", x);
^
aadarshsinha-ENDCORR.cpp:13:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", x);
~~~~~^~~~~~~~~
1 Like
You should use a heap instead of a vector to avoid TLE, faster IO cannot be of much help if the basic approach is much slower. To avoid SIGSEGV you can check compiler warnings given by ssjgz for correct use of scanf.
2 Likes
Thank You everyone for spending your time and helping me out , now i got it .
1 Like