20 lines
302 B
C
Executable File
20 lines
302 B
C
Executable File
enum
|
|
{
|
|
MY_INT_MAX = ~0u >> (!0),
|
|
MY_INT_MIN = ~(~0u >> (!0))
|
|
};
|
|
|
|
int
|
|
satsum(int v1, int v2)
|
|
{
|
|
if (v1 > 0 && (signed int) MY_INT_MAX - v1 < v2) {
|
|
return MY_INT_MAX;
|
|
}
|
|
|
|
if (v1 < 0 && (signed int) MY_INT_MIN - v1 > v2) {
|
|
return MY_INT_MIN;
|
|
}
|
|
|
|
return v1 + v2;
|
|
}
|