Submission #726614
Source Code Expand
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, Q; //N:円錐の個数,Q:クエリの個数
int X[200], R[200], H[100], A[100], B[100], h[100];
double V[200]; //体積
scanf("%d %d", &N, &Q);
int i, j;
double tmp1, tmp2;
for (i = 0; i < N; i++)
scanf("%d %d %d", &X[i], &R[i], &H[i]);
for (i = 0; i < Q; i++)
scanf("%d %d", &A[i], &B[i]);
for (i = 0; i < Q; i++) {
V[i] = 0;
for(j = 0; j < N; j++) {
h[j] = H[j] + X[j];
if (h[j] < A[i] || B[i] < X[j]) { //下限が超えていた上限が含まれない場合
V[i] += 0;
}
else {
if (A[i] <= X[j]) { //下限よりも下にある);
if (h[j]<= B[i]) //Bが超える
V[i] += ( R[j]*R[j]*M_PI*H[j] / 3);
else { //Bが超えない
tmp1 = R[j]*R[j]*M_PI*H[j] / 3;
tmp2 = (double)(h[j]-B[i])*R[j] / H[j]; //余分な円錐の半径
V[i] += ( tmp1 - (tmp2*tmp2*M_PI*(h[j]-B[i])/3) );
}
}
else { //Aが円錐内にある
if (h[j] < B[i]) { //Bが円錐内にない
tmp1 = (double)(h[j]-A[i])*R[j] / H[j];
V[i] += (tmp1*tmp1*M_PI*(h[j]-A[i]) / 3);
}
else { //Bが円錐内
tmp1 = (double)(h[j]-A[i])*R[j] / H[j];
tmp2 = tmp1*tmp1*M_PI*(h[j]-A[i])/3;
tmp1 = (double)(h[j]-B[i])*R[j]/H[j];
V[i] += ( tmp2 - (tmp1*tmp1*M_PI*(h[j]-B[i])/3) );
}
}
}
} //ループ終了
}
for (i = 0; i < Q; i++) {
printf("%lf\n", V[i]);
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - 円錐 |
| User | bogard |
| Language | C (GCC 5.4.1) |
| Score | 100 |
| Code Size | 1698 Byte |
| Status | AC |
| Exec Time | 3 ms |
| Memory | 128 KiB |
Compile Error
./Main.c: In function ‘main’:
./Main.c:10:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &N, &Q);
^
./Main.c:15:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d", &X[i], &R[i], &H[i]);
^
./Main.c:17:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &A[i], &B[i]);
^
Judge Result
| Set Name | Sample | Subtask1 | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| Subtask1 | sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 2 ms | 128 KiB |
| sample_02.txt | AC | 2 ms | 128 KiB |
| subtask1_01.txt | AC | 2 ms | 128 KiB |
| subtask1_02.txt | AC | 2 ms | 128 KiB |
| subtask1_03.txt | AC | 3 ms | 128 KiB |
| subtask1_04.txt | AC | 2 ms | 128 KiB |
| subtask1_05.txt | AC | 2 ms | 128 KiB |
| subtask1_06.txt | AC | 2 ms | 128 KiB |
| subtask1_07.txt | AC | 2 ms | 128 KiB |
| subtask1_08.txt | AC | 2 ms | 128 KiB |
| subtask1_09.txt | AC | 2 ms | 128 KiB |
| subtask1_10.txt | AC | 2 ms | 128 KiB |
| subtask1_11.txt | AC | 2 ms | 128 KiB |
| subtask1_12.txt | AC | 2 ms | 128 KiB |
| subtask1_13.txt | AC | 2 ms | 128 KiB |
| subtask1_14.txt | AC | 2 ms | 128 KiB |
| subtask1_15.txt | AC | 2 ms | 128 KiB |
| subtask1_16.txt | AC | 2 ms | 128 KiB |
| subtask1_17.txt | AC | 2 ms | 128 KiB |
| subtask1_18.txt | AC | 3 ms | 128 KiB |
| subtask1_19.txt | AC | 2 ms | 128 KiB |
| subtask1_20.txt | AC | 3 ms | 128 KiB |
| subtask1_21.txt | AC | 3 ms | 128 KiB |
| subtask1_22.txt | AC | 3 ms | 128 KiB |
| subtask1_23.txt | AC | 3 ms | 128 KiB |
| subtask1_24.txt | AC | 3 ms | 128 KiB |
| subtask1_25.txt | AC | 2 ms | 128 KiB |
| subtask1_26.txt | AC | 2 ms | 128 KiB |
| subtask1_27.txt | AC | 2 ms | 128 KiB |
| subtask1_28.txt | AC | 3 ms | 128 KiB |
| subtask1_29.txt | AC | 2 ms | 128 KiB |
| subtask1_30.txt | AC | 2 ms | 128 KiB |
| subtask1_31.txt | AC | 2 ms | 128 KiB |
| subtask1_32.txt | AC | 2 ms | 128 KiB |
| subtask1_33.txt | AC | 2 ms | 128 KiB |
| subtask1_34.txt | AC | 2 ms | 128 KiB |
| subtask1_35.txt | AC | 2 ms | 128 KiB |
| subtask1_36.txt | AC | 2 ms | 128 KiB |
| subtask1_37.txt | AC | 3 ms | 128 KiB |
| subtask1_38.txt | AC | 2 ms | 128 KiB |
| subtask1_39.txt | AC | 2 ms | 128 KiB |