You need to include a header file
#include <sys/resource.h>
and in the main() function you need to write these lines
rlimit R;
getrlimit(RLIMIT_STACK, &R);
R.rlim_cur = R.rlim_max;
setrlimit(RLIMIT_STACK, &R);
thanks(not this line).
# | User | Rating |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 155 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | nor | 152 |
You need to include a header file
#include <sys/resource.h>
and in the main() function you need to write these lines
rlimit R;
getrlimit(RLIMIT_STACK, &R);
R.rlim_cur = R.rlim_max;
setrlimit(RLIMIT_STACK, &R);
thanks(not this line).
Name |
---|
I don't see any number specifying new stack size. Is it inifinity? Or do I need to write something like:
This line
R.rlim_cur = R.rlim_max;
does what you're asking about.Tried printing the value of
R.rlim_max
and got18446744073709551615
, so yeah it's probably infinity.More info?
In my machine, the value of R.rlim_max is 4294967295(Byte). So the stack size is 4GB in my machine.
I tried this, but the Codeforces compiler couldn't find the header.
program.cpp:50:26: fatal error: sys/resource.h: No such file or directory
Because it is not linux. However stack size is large enough on codeforces.
I am shocked, Codeforces servers are not linux XD
is there any danger of doing it?
These calls may be forbidden on some online judges or offline competitions, as they're unusual system calls. So, you theoretically can be disqualified, if jury will think that such calls violate competition rules. From practical point of view, you may bump into compilation error or runtime error (for the same reasons — these calls can be banned).