2 条题解

  • 2

    出题人题解

    思路

    根据情况模拟即可,注意保留 22 位小数。

    code

    #include<bits/stdc++.h>
    using namespace std;
    int t;
    void f(string s){
    	freopen((s+".in").c_str(),"r",stdin);
    	freopen((s+".out").c_str(),"w",stdout);
    }
    double solve(int k,int d,int a){
    	if(k+a>=2*d)	return 1.5*k+0.5*a;
    	else if(k+a>d&&k+a<2*d)	return 1.5*k+0.5*a-0.5*d;
    	else	return k+0.5*a-0.75*d;
    }
    int main(){
    	
    	int k,d,a;
    	cin>>t;
    	while(t--){
    		cin>>k>>d>>a;
    		double ans=solve(k,d,a);
    		if(ans<-5)	puts("-5.00");
    		else if(ans>20)	puts("20.00");
    		else printf("%.2f\n",ans);
    	}
    	return 0;
    }
    
    
    • 1
      #include<bits/stdc++.h>
      using namespace std;
      
      float b[11];
      int main()
      {
          float k,d,a,zushu;
          cin>>zushu;
          for(int i=1;i<=zushu;i++)
      {
      	cin>>k>>d>>a;
      	if(k+a>=2*d)
      	{
      		b[i]=1.5*k+0.5*a;
      	}
      	else if(k+a>d&&k+a<2*d)
      	{
      		b[i]=1.5*k+0.5*a-0.5*d;
      	}
      	else 
      	{
      		b[i]=k+0.5*a-0.75*d;
      	}
      	if(b[i]>20) b[i]=20.00;
      	if(b[i]<-5) b[i]=-5.00;
      }
      for(int j=1;j<=zushu;j++)
      {
      	printf("%.2f\n",b[j]);
      }
      return 0;
      }
      
      • 1

      信息

      ID
      794
      时间
      1000ms
      内存
      256MiB
      难度
      8
      标签
      (无)
      递交数
      49
      已通过
      7
      上传者