Japan Alumni Group Summer Camp 2014 Day 4

Submission #232088

Source codeソースコード

#include <cmath>
#include <cstdio>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

typedef long long ll;

const double EPS=1e-8;

struct point3{
	double x,y,z;
	point3():x(0),y(0),z(0){}
	point3(double x,double y,double z):x(x),y(y),z(z){}
	point3 operator-(const point3 &a)const{ return point3(x-a.x,y-a.y,z-a.z); }
};

double dot(const point3 &a,const point3 &b){ return a.x*b.x+a.y*b.y+a.z*b.z; }

point3 cross(const point3 &a,const point3 &b){ return point3(a.y*b.z-a.z*b.y,a.z*b.x-a.x*b.z,a.x*b.y-a.y*b.x); }

double abs(const point3 &a){ return sqrt(a.x*a.x+a.y*a.y+a.z*a.z); }

struct segment3{ point3 a,b; };

struct sphere{
	point3 c;
	double r;
	sphere():c(point3(0,0,0)),r(0){}
};

double dist(const segment3 &S,const point3 &p){
	if(dot(S.b-S.a,p-S.a)<=0) return abs(p-S.a);
	if(dot(S.a-S.b,p-S.b)<=0) return abs(p-S.b);
	return abs(cross(S.b-S.a,p-S.a))/abs(S.a-S.b);
}

bool intersect(const sphere &C,const segment3 &S){
	return dist(S,C.c)<C.r+EPS;
}

int main(){
	int n,q; scanf("%d%d",&n,&q);
	sphere S[50];
	ll cost[50];
	rep(i,n) scanf("%lf%lf%lf%lf%lld",&S[i].c.x,&S[i].c.y,&S[i].c.z,&S[i].r,cost+i);

	while(q--){
		segment3 T;
		scanf("%lf%lf%lf%lf%lf%lf",&T.a.x,&T.a.y,&T.a.z,&T.b.x,&T.b.y,&T.b.z);
		ll ans=0;
		rep(i,n) if(intersect(S[i],T)) ans+=cost[i];
		printf("%lld\n",ans);
	}

	return 0;
}

Submission

Task問題 C - Magic Bullet
User nameユーザ名 fura
Created time投稿日時
Language言語 C++ (GCC 4.4.7)
Status状態 AC
Score得点 100
Source lengthソースコード長 1396 Byte
File nameファイル名
Exec time実行時間 30 ms
Memory usageメモリ使用量 924 KB

Compiler messageコンパイルメッセージ

./Main.cpp: In function ‘int main()’:
./Main.cpp:44: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:47: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:51: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

Test case

Set

Set name Score得点 / Max score Cases
All 100 / 100 00_sample1,00_sample2,00_sample3,10_random_00,10_random_01,10_random_02,10_random_03,10_random_04,10_random_05,10_random_06,10_random_07,10_random_08,10_random_09,10_random_10,10_random_11,10_random_12,10_random_13,10_random_14,10_random_15,10_random_16,10_random_17,10_random_18,10_random_19,10_random_20,10_random_21,10_random_22,10_random_23,10_random_24,10_random_25,10_random_26,10_random_27,10_random_28,10_random_29,10_random_30,10_random_31,10_random_32,10_random_33,10_random_34,10_random_35,10_random_36,10_random_37,10_random_38,10_random_39,10_random_40,10_random_41,10_random_42,10_random_43,10_random_44,10_random_45,10_random_46,10_random_47,10_random_48,10_random_49,90_man01,90_man02,90_man03

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
00_sample1 AC 23 ms 736 KB
00_sample2 AC 25 ms 792 KB
00_sample3 AC 23 ms 796 KB
10_random_00 AC 23 ms 800 KB
10_random_01 AC 24 ms 796 KB
10_random_02 AC 25 ms 668 KB
10_random_03 AC 22 ms 804 KB
10_random_04 AC 23 ms 664 KB
10_random_05 AC 24 ms 792 KB
10_random_06 AC 25 ms 740 KB
10_random_07 AC 23 ms 796 KB
10_random_08 AC 23 ms 796 KB
10_random_09 AC 22 ms 804 KB
10_random_10 AC 23 ms 744 KB
10_random_11 AC 21 ms 804 KB
10_random_12 AC 22 ms 800 KB
10_random_13 AC 23 ms 780 KB
10_random_14 AC 23 ms 744 KB
10_random_15 AC 23 ms 800 KB
10_random_16 AC 22 ms 792 KB
10_random_17 AC 22 ms 796 KB
10_random_18 AC 22 ms 700 KB
10_random_19 AC 23 ms 924 KB
10_random_20 AC 23 ms 784 KB
10_random_21 AC 23 ms 792 KB
10_random_22 AC 26 ms 676 KB
10_random_23 AC 23 ms 676 KB
10_random_24 AC 24 ms 800 KB
10_random_25 AC 24 ms 804 KB
10_random_26 AC 22 ms 676 KB
10_random_27 AC 22 ms 800 KB
10_random_28 AC 22 ms 672 KB
10_random_29 AC 23 ms 796 KB
10_random_30 AC 24 ms 800 KB
10_random_31 AC 24 ms 920 KB
10_random_32 AC 22 ms 668 KB
10_random_33 AC 23 ms 792 KB
10_random_34 AC 24 ms 796 KB
10_random_35 AC 26 ms 792 KB
10_random_36 AC 24 ms 696 KB
10_random_37 AC 21 ms 924 KB
10_random_38 AC 23 ms 796 KB
10_random_39 AC 24 ms 668 KB
10_random_40 AC 24 ms 788 KB
10_random_41 AC 24 ms 800 KB
10_random_42 AC 23 ms 676 KB
10_random_43 AC 21 ms 672 KB
10_random_44 AC 22 ms 800 KB
10_random_45 AC 24 ms 672 KB
10_random_46 AC 22 ms 796 KB
10_random_47 AC 30 ms 804 KB
10_random_48 AC 21 ms 672 KB
10_random_49 AC 22 ms 792 KB
90_man01 AC 22 ms 748 KB
90_man02 AC 23 ms 676 KB
90_man03 AC 25 ms 772 KB