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
AC × 2
AC × 41
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