Submission #274928


Source Code Expand

#include <algorithm>
#include "grader.h"
#include "ghost.h"
using namespace std;
 
#define REPS(i,s,n) for(int i=s;i<n;i++)
#define REP(i,n) REPS(i,0,n)
 
void FindGhost(
    int N,
    double Cx[],double Cy[],double Cz[],
    double Ty[],double Tz[]
) {
    double minTy = Ty[0];
    double maxTy = Ty[0];
    double minTz = Tz[0];
    double maxTz = Tz[0];
    REPS(i,1,N) {
        minTy = min(minTy,Ty[i]);
        maxTy = max(maxTy,Ty[i]);
        minTz = min(minTz,Tz[i]);
        maxTz = max(maxTz,Tz[i]);
    }
 
    int i_minTy, i_maxTy, i_minTz, i_maxTz;
    double j_minTy, j_maxTy, j_minTz, j_maxTz;
    i_minTy = i_maxTy = i_minTz = i_maxTz = 0;
    j_minTy = (Cy[0]-minTy)/Cx[0];
    j_maxTy = (maxTy-Cy[0])/Cx[0];
    j_minTz = (Cz[0]-minTz)/Cx[0];
    j_maxTz = (maxTz-Cz[0])/Cx[0];
    REPS(i,1,N) {
        if ( j_minTy < (Cy[i]-minTy)/Cx[i] )
           { i_minTy=i; j_minTy=(Cy[i]-minTy)/Cx[i]; }
        if ( j_maxTy < (maxTy-Cy[i])/Cx[i] )
           { i_maxTy=i; j_maxTy=(maxTy-Cy[i])/Cx[i]; }
        if ( j_minTz < (Cz[i]-minTz)/Cx[i] )
           { i_minTz=i; j_minTz=(Cz[i]-minTz)/Cx[i]; }
        if ( j_maxTz < (maxTz-Cz[i])/Cx[i] )
           { i_maxTz=i; j_maxTz=(maxTz-Cz[i])/Cx[i]; }
    }
 
    double s1, s2;
    double gx, gy, gz;
    s1 = ( (Cx[i_maxTy]-0) * (minTy-maxTy) ) / 2;
    s2 = ( (Cx[i_maxTy]-0) * (maxTy-Cy[i_minTy])
         - (Cy[i_maxTy]-maxTy) * (0-Cx[i_minTy]) ) / 2;
    gx =     0 + (Cx[i_minTy]-    0) * s1 / (s1+s2);
    gy = minTy + (Cy[i_minTy]-minTy) * s1 / (s1+s2);
    s1 = ( (Cx[i_maxTz]-0) * (minTz-maxTz)
         - (Cz[i_maxTz]-maxTz) * (0-0) ) / 2;
    s2 = ( (Cx[i_maxTz]-0) * (maxTz-Cz[i_minTz])
         - (Cz[i_maxTz]-maxTz) * (0-Cx[i_minTz]) ) / 2;
    gz = minTz + (Cz[i_minTz]-minTz) * s1 / (s1+s2);
  //  if (s1+s2 == 0) gz = 0;
 
    answer(gx, gy, gz);
}

Submission Info

Submission Time
Task B - やさしいおばけ の たんじょうびかい (Friendly Ghost's Birthday Party)
User candidate_654
Language IOI-Style C++ (GCC 5.4.1)
Score 60
Code Size 1889 Byte
Status WA
Exec Time 282 ms
Memory 4648 KB

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 19 / 19 0 / 40 41 / 41
Status
AC × 8
WA × 8
AC × 16
Set Name Test Cases
Subtask1 subtask1/1, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8
Subtask2 subtask2/1, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8
Subtask3 subtask1/1, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask3/1, subtask3/2, subtask3/3, subtask3/4, subtask3/5, subtask3/6, subtask3/7, subtask3/8
Case Name Status Exec Time Memory
subtask1/1 AC 23 ms 916 KB
subtask1/2 AC 21 ms 868 KB
subtask1/3 AC 22 ms 924 KB
subtask1/4 AC 22 ms 928 KB
subtask1/5 AC 23 ms 796 KB
subtask1/6 AC 21 ms 928 KB
subtask1/7 AC 21 ms 928 KB
subtask1/8 AC 22 ms 804 KB
subtask2/1 WA 252 ms 4648 KB
subtask2/2 WA 241 ms 4644 KB
subtask2/3 WA 246 ms 4640 KB
subtask2/4 WA 241 ms 4636 KB
subtask2/5 WA 239 ms 4564 KB
subtask2/6 WA 240 ms 4640 KB
subtask2/7 WA 229 ms 4588 KB
subtask2/8 WA 229 ms 4520 KB
subtask3/1 AC 282 ms 4644 KB
subtask3/2 AC 278 ms 4640 KB
subtask3/3 AC 280 ms 4636 KB
subtask3/4 AC 282 ms 4648 KB
subtask3/5 AC 278 ms 4640 KB
subtask3/6 AC 281 ms 4576 KB
subtask3/7 AC 266 ms 4520 KB
subtask3/8 AC 271 ms 4516 KB