1 条题解
-
0
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
- 上传者