/*
* Created by Mieszko Mazurek
* on 29.09.2015
*/
#include <stdio.h>
#define __inline__ __attribute__((always_inline)) inline
#define getchar() getc_unlocked(stdin)
#define putchar(c) putc_unlocked(c, stdout)
#define UINT_MAX 0xFFFFFFFF
#define uint unsigned int
__inline__
void writeuint(uint val)
{
static char buffer[16];
register uint len, c;
len = 0;
while (val) {
c = val % 10 + '0';
buffer[len++] = c;
val /= 10;
}
while(len)
putchar(buffer[--len]);
}
__inline__
void writeuintln(uint val)
{
writeuint(val);
putchar('\n');
}
__inline__
uint readuint()
{
uint val;
char c;
do c = getchar();
while (c < '0' || c > '9');
val = c - '0';
c = getchar();
while (c >= '0' && c <= '9') {
val *= 10;
val += c - '0';
c = getchar();
}
return val;
}
int main(int argc, char** argv)
{
register uint n, sum, bank;
auto uint minodd;
minodd = UINT_MAX;
sum = 0;
n = readuint();
while (n --> 0) {
bank = readuint();
sum += bank;
if (bank & 1 && bank < minodd)
minodd = bank;
}
if (sum & 1)
if (minodd < UINT_MAX)
sum -= minodd;
else
sum = 0;
if (sum) {
writeuint(sum);
putchar('\n');
}
else
puts("NIESTETY\n");
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | /* * Created by Mieszko Mazurek * on 29.09.2015 */ #include <stdio.h> #define __inline__ __attribute__((always_inline)) inline #define getchar() getc_unlocked(stdin) #define putchar(c) putc_unlocked(c, stdout) #define UINT_MAX 0xFFFFFFFF #define uint unsigned int __inline__ void writeuint(uint val) { static char buffer[16]; register uint len, c; len = 0; while (val) { c = val % 10 + '0'; buffer[len++] = c; val /= 10; } while(len) putchar(buffer[--len]); } __inline__ void writeuintln(uint val) { writeuint(val); putchar('\n'); } __inline__ uint readuint() { uint val; char c; do c = getchar(); while (c < '0' || c > '9'); val = c - '0'; c = getchar(); while (c >= '0' && c <= '9') { val *= 10; val += c - '0'; c = getchar(); } return val; } int main(int argc, char** argv) { register uint n, sum, bank; auto uint minodd; minodd = UINT_MAX; sum = 0; n = readuint(); while (n --> 0) { bank = readuint(); sum += bank; if (bank & 1 && bank < minodd) minodd = bank; } if (sum & 1) if (minodd < UINT_MAX) sum -= minodd; else sum = 0; if (sum) { writeuint(sum); putchar('\n'); } else puts("NIESTETY\n"); return 0; } |
English