1 条题解

  • 0
    @ 2024-12-24 9:54:27

    C :

    #include<stdio.h>
    int f(double d,double t)
    {
    	double sum=t/5.0*2.0+1;
    	if(d>=10) sum=sum+10+14+3*(d-10);
    	else if(d>=3) sum=sum+10+2*(d-3);
    	else sum+=10;
    	if(sum-(int)sum>=0.5) return (int)sum+1;
    	else  return (int)sum;
    }
    int g(double d,double t)
    {
    	double sum=t*2.5/4;
    	if(d>=10) sum=sum+11+2.5*7+3.75*(d-10);
    	else if(d>=3) sum=sum+11+2.5*(d-3);
    	else sum+=11;
    	if(sum-(int)sum>=0.5) return (int)sum+1;
    	else  return (int)sum;
    }
    int main()
    {
        int d,t,n;
    	scanf("%d",&n);
    	while(n--)
    	{
    		scanf("%d%d",&d,&t);
    		printf("%d\n",g((double)d,(double)t)-f((double)d,(double)t));
    	}
        return 0;
    }
    

    C++ :

    #include <stdio.h>
    
    int main() {
    	int T, d, t, x, y;
    	double a, b;
    	scanf("%d", &T);
    	while (T--) {
    		scanf("%d%d", &d, &t);
    		a = 11;
    		if (d - 3 > 0) {
    			if (d - 10 > 0)
    				a += 14 + 3 * (d - 10);
    			else
    				a += 2 * (d - 3);
    		}
    		a += t / 5.0 * 2;
    		x = a + 0.5;
    		b = 11;
    		if (d - 3 > 0) {
    			if (d - 10 > 0)
    				b += 17.5 + 3.75 * (d - 10);
    			else
    				b += 2.5 * (d - 3);
    		}
    		b += t / 4.0 * 2.5;
    		y = b + 0.5;
    		printf("%d\n", y - x);
    	}
    	return 0;
    }
    

    Java :

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		
    		Scanner in = new Scanner(System.in);
    		int n = in.nextInt();
    		for (int i = 0; i < n; i++) {
    			int d = in.nextInt();
    			int t = in.nextInt();
    			System.out.println(after(d,t)-before(d, t));
    			
    		}
    	
    	}
    	static int before(int d, int t) {
    		
    		int per;
    		double sum=1;
    		if (d<=3) {
    			sum+=10;
    		}else if (d<=10) {
    			sum+=10;
    			per = 2;
    			int temp = d-3;
    			sum+=(per*temp);
    		}else if(d>10){
    			per = 3;
    			int temp = d-10;
    			sum+=10;
    			sum+=7*2;
    			sum+=per*temp;
    		}
    		double wait = t*0.4;
    		sum+=wait;
    		return cast(sum);
    		
    	}
    	static int after(int d, int t){
    		
    		double per;
    		double sum=0;
    		if (d<=3) {
    			sum+=11;
    		}else if (d<=10) {
    			per = 2.5;
    			int temp = d-3;
    			sum+=11;
    			sum+=per*temp;
    		}else if(d>10){
    			per = 3.75;
    			int temp = d-10;
    			sum+=11;
    			sum+=7*2.5;
    			sum+=per*temp;
    		}
    		double wait = t*2.5/4;
    	
    		
    		sum+=wait;
    		return cast(sum);
    		
    	}
    	
    	static int cast(double d){
    		int id = (int) d;
    		int res = (d-id)>=0.5?id+1:id;
    		return res;
    	}
    }
    
    
    • 1

    信息

    ID
    1049
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者