/* * 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; } |