Submission #15300

#TimeUsernameProblemLanguageResultExecution timeMemory
15300wlgns88님 무기가 좀 나쁘시네여 (kriii3_S)C++98
29 / 29
0 ms1084 KiB
#include <stdio.h> #include <memory.h> #define calc_expr(si, var) s[si].var = (c[si].var - s[si].var) < 0 ? 0 : (c[si].var - s[si].var) #define calc_expr2(si, di, var) s[di].var = (s[si].var + s[di].var) < 0 ? 0 : (s[si].var + s[di].var) double min(double a, double b) { return (a > b) ? b : a; } typedef struct Status { int atk; int str; int crit_rate; int crit_damage; int speed; }Status; double get_power(Status *s) { return s->atk * ( 1 + (s->str / 100.0) ) * ((1 - min(s->crit_rate/100.0, 1)) + min(s->crit_rate/100.0, 1) * s->crit_damage/100.0) * (1 + s->speed/100.0); } void get_result(Status *b, Status *a) { double before = get_power(b), after = get_power(a); if ( before < after ) printf("+\n"); else if ( before > after ) printf("-\n"); else printf("0\n"); } int main() { Status c[2], s[4]; int i; for ( i = 0; i < 2; i++ ) scanf("%d %d %d %d %d", &c[i].atk, &c[i].str, &c[i].crit_rate, &c[i].crit_damage, &c[i].speed); for ( i = 0; i < 2; i++ ) { scanf("%d %d %d %d %d", &s[i].atk, &s[i].str, &s[i].crit_rate, &s[i].crit_damage, &s[i].speed); memcpy(s+3-i, s+i, sizeof(Status)); } for ( i = 0; i < 2; i++ ) { calc_expr(i, atk); calc_expr(i, str); calc_expr(i, crit_rate); calc_expr(i, crit_damage); calc_expr(i, speed); } for ( i = 2; i < 4; i++ ) { calc_expr2(i-2, i, atk); calc_expr2(i-2, i, str); calc_expr2(i-2, i, crit_rate); calc_expr2(i-2, i, crit_damage); calc_expr2(i-2, i, speed); } get_result(c+0, s+2); get_result(c+1, s+3); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...