A Sweet Journey
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2619 Accepted Submission(s): 1007
Problem Description
Master Di plans to take his girlfriend for a travel by bike. Their journey, which can be seen as a line segment of length L, is a road of swamps and flats. In the swamp, it takes A point strengths per meter for Master Di to ride; In the flats, Master Di will regain B point strengths per meter when riding. Master Di wonders:In the beginning, he needs to prepare how much minimum strengths. (Except riding all the time,Master Di has no other choice)
![](https://i-blog.csdnimg.cn/blog_migrate/634cc03ba8ae33090e63e17f99aa472d.jpeg)
Input
In the first line there is an integer t (
1≤t≤50
), indicating the number of test cases.
For each test case:
The first line contains four integers, n, A, B, L.
Next n lines, each line contains two integers: Li,Ri , which represents the interval [Li,Ri] is swamp.
1≤n≤100,1≤L≤105,1≤A≤10,1≤B≤10,1≤Li<Ri≤L .
Make sure intervals are not overlapped which means Ri<Li+1 for each i ( 1≤i<n ).
Others are all flats except the swamps.
For each test case:
The first line contains four integers, n, A, B, L.
Next n lines, each line contains two integers: Li,Ri , which represents the interval [Li,Ri] is swamp.
1≤n≤100,1≤L≤105,1≤A≤10,1≤B≤10,1≤Li<Ri≤L .
Make sure intervals are not overlapped which means Ri<Li+1 for each i ( 1≤i<n ).
Others are all flats except the swamps.
Output
For each text case:
Please output “Case #k: answer”(without quotes) one line, where k means the case number counting from 1, and the answer is his minimum strengths in the beginning.
Please output “Case #k: answer”(without quotes) one line, where k means the case number counting from 1, and the answer is his minimum strengths in the beginning.
Sample Input
1 2 2 2 5 1 2 3 4
Sample Output
Case #1: 0
#include <iostream>
#include <string>
#include <stdlib.h>
#include <ctype.h>
#include <cstdio>
#include <cstdlib>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <cstring>
#include <math.h>
#include <algorithm>
#define LL long long
#define INF 0x3f3f3f3f
#define RR freopen("in.txt","r",stdin)
#define WW freopen("out.txt","w",stdout)
#define PI acos(-1.0)
using namespace std;
struct node
{
int ll, rr;
bool operator<(const node &dd)const
{
return ll<dd.ll;
}
} q[110];
int ls[100010];
int main()
{
int T;
scanf("%d",&T);
int cnt=1;
int n, a, b, len;
int i, j;
while(T--)
{
scanf("%d %d %d %d", &n, &a, &b, &len);
for(int i=0;i<=len;i++)
ls[i] = 0;
for(i=0; i<n; i++)
{
scanf("%d %d", &q[i].ll, &q[i].rr );
ls[ q[i].ll ] = q[i].rr;
}
int swam = 0;
int flat = 0;
int ans = 0;
for(int i=0;i<len;i++)
{
if(ls[i] == 0)
{
flat += b;
}
else
{
int d = ls[i] - i;
int tt = d * a;
if(flat > tt)
{
flat -= tt;
}
else
{
ans += tt - flat;
flat = 0;
}
i = ls[i] - 1;
}
}
printf("Case #%d: %d\n", cnt++, ans);
}
return 0;
}