Thứ Tư, 27 tháng 3, 2019

Bài A - Codeforces Round #539 (Div.2)

Bài A:
Đề bài: Sasha rất hạnh phúc, đó là lý do tại sao anh ta luôn luôn di chuyển. Có n thành phố trong đát nước nơi Sasha sống. Chúng được tọa lạc trên một đường thẳng và để tiện lợi, họ đánh số từ 1 đến n theo thứ tự tăng dần. Khoảng cách giữa hai thành phố bất kỳ bằng 1 km. Bởi vì tất cả các đường trong thành phố đều có hướng, chúng ta có thể đến thành phố y từ thành phố x khi và chỉ khi x<y.
Một lần, Sasha quyết định tiếp tục chiến đi quanh đất nước và thăm viếng tất cả n thành phố. Anh ấy sẽ di chuyển với sự trợ giúp chiếc xe của mình, Cheetah-2677. Dung tích thùng của mẫu xe này là v lít, và nó dành chính xác 1 lít cho 1 km trên đường. Bắt đầu cuộc hành trình, thùng ban đầu rỗng. Sasha tọa lạc trong thành phố số 1 và muốn đến thành phố thứ n. Mỗi thành phố có 1 trạm xăng. Ở thành phố thứ i, giá của 1 lít xăng là 1 i dollars. Rõ ràng ở bất kỳ thời giạn nào, thùng chỉ chứa tối đa v lít.
Sasha không thích lãng phí tiền bạc, đó là lý do tại sao anh ta muốn biết giá trị nhỏ nhất của lượng tiền mình cần để hoàn thành chuyến đi nếu anh ấy có thể mua xăng ở bất kỳ thành phố nào anh ấy muốn. Hãy giúp anh ấy tìm ra nó.
Đầu vào:
+ Dòng đầu tiên chứa hai số nguyên n và v (2<=n<=100,1<=v<=100) - số lượng thành phố trong đất nước và sức chứa của thùng.
Đầu ra:
+ In ra một số nguyên - Lượng tiền nhỏ nhất mà anh ta cần để kết thúc chuyến đi.
Ví dụ:
Đầu vào:
4 2
Đầu ra:
4
/**/
Đầu vào:
7 6
Đầu ra:
6
Chú thích:
+Ở ví dụ đầu tiên, Sasha có thể mua 2 lít ứng với 2 đô la ở thành phố đầu tiên, lái xe đến thành phố thứ 2, dành 1 lit xăng để đi đến nó, sau đó mua 1 lít 2 đô la ở thành phố thứ 2 và sau đó lái xe đến thành phố thứ 4. vì vậy, câu trả lời là 1+1+2=4.
+ Ở ví dụ thứ 2, sức chứa cho phép đồ đầy xăng ngay trong thành phố đầu tiên, và sau đó đi đến thành phố cuối cùng mà không dừng ở thành phố khác.
Hướng dẫn:
Khi n-1<v nên câu trả lời là n-1. Ngược lại, bạn chú ý rằng, cách tối ưu để đổ xăng là sơm nhất có thể, bởi vì nếu bạn không đổ, bạn phải dành nhiều tiền ở tương lai. Vì vậy để lái xe, đầu tiên v-1 km chỉ mua được v-1 lit ở thành phố đầu tiên, sau đó đi đến giữa các thành phố i và i+1, mua lit ở thành phố với i-v+1.
Lời giải:
#include <bits/stdc++.h>
using namespace std;

int main() {
 long long n,v;
 cin>>n>>v;
 long sum=0;
 if(n<=v)
 cout<<n-1;
 else if(n>v && (n-v)==1)
 cout<<v;
 else if(n>v && (n-v)>1)
 {
     for(long i=2;i<=n-v;i++)
     {
         
         sum=sum+i;
     }cout<<sum+v;
 }
 
 
 return 0;
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...