Bố Tí thường xem TV mỗi ngày. Ông ấy luôn đặt âm lượng của TV ở mức b. Tuy nhiên, hôm nay ông phát hiện ra ai đó đã thay đổi âm lượng thành a. Chiếc TV này có một chiếc điều khiển từ xa khá đặc biệt: Có sáu nút (−5, −2, −1, +1, +2, +5) điều khiển âm lượng, trong một lần nhấn có thể tăng hoặc giảm âm lượng hiện tại 1, 2 hoặc 5. Âm lượng có thể lớn tùy ý, nhưng không được giảm xuống dưới 0. Em hãy tìm số lần nhấn nút tăng hoặc giảm âm lượng ít nhất để điều chỉnh âm lượng TV từ mức a về mức b. Input  Dòng đầu tiên chứa số T là số bộ dữ liệu cần xử lý (1 ≤ T ≤ 1000).  T dòng sau, mỗi dòng chứa một bộ dữ liệu gồm hai số nguyên a và b (0 ≤ a, b ≤ 109 ) với ý nghĩa như đã mô tả trong đề bài. Output Ứng với mỗi bộ dữ liệu vào, chương trình của bạn cần in ra một số nguyên duy nhất là số lần tối thiểu cần nhấn nút âm lượng trên điều khiển từ xa để thay đổi âm lư âm lượng TV từ a thành b. Nếu không cần thay đổi âm lượng (tức là a = b), thì in ra số 0.

2 câu trả lời

#include <iostream>
#include <math.h>
int a,b,c,z,be,x,y,s;
using namespace std;
int al(int x, int y)
{
    be=10000;
    z=abs(x-y);
    a=z/1;
    b=z/2;
    c=z/5;
    if(z==0){
        return 0;
    }
    for(int k=0;k<=c;k++){
        for(int j=0;j<=b;j++){
            for(int i=0;i<=a;i++){
                if(i*1+j*2+k*5==z){
                    s=i+j+k;
                    if(be>s){
                        be=s;
                    }
                }
            }
        }
    }
    return be;
}
int main()
{
    int T;
    cin>>T;
    int arr[T];
    for(int i=0;i<T;i++){
        cin>>x>>y;
        arr[i]=al(x,y);
    }
    for(int i=0;i<T;i++){
        cout<<arr[i]<<endl;
    }
    //samon247
    return 0;
}

const fi='BT.INP';
      fo='BT.OUT';
var a,b,t,d,n,i:longint;
function xuat(a,b:longint):longint;
begin $\color{white}{© }$
        d:=0;
        t:=abs(a-b);
        inc(d,t div 5);
        t:=t-((t div 5)*5);
        inc(d,t div 3);
        t:=t-((t div 3)*3);
        inc(d,t);
        exit(d);
end;
begin
        assign(input,fi);
        assign(output,fo);
        reset(input);
        rewrite(output);
        readln(n);
        for i:=1 to n do
                begin
                        readln(a,b);
                        writeln(xuat(a,b));
                end;
        close(output);
        close(input);
end.

Câu hỏi trong lớp Xem thêm