首页 > 其他分享 >CF1759C Thermostat

CF1759C Thermostat

时间:2023-05-09 18:36:06浏览次数:50  
标签:CF1759C 边界 abs && 直接 步数 Thermostat

原题链接(https://codeforces.com/contest/1759/problem/D)

题意简述

共t组输入
每组输入五个整数l,r,x,a,b(l<=a,b<=r)
对于a的操作,可从a变成c,但要保证|c-a|>=x,并且l<=c<=r
问从a到b的最少操作步数为多少,若不能到b则输出-1

个人分析

1,a=b,步数为0
2,|a-b|>=x,直接a到b,步数为1
3,当 a 能直接到左边界l,且l能直接到 b 时,或当 a 能直接到尤右边界r,且r能直接到 b 时,步数为2
4,当 a 能到左右边界的任意一个,且 b 也能到左右边界的任意一个时,步数为 3

AC代码

点击查看代码
    int l,r,x,a,b;
    cin >> l >> r >> x >> a >> b;
    
    if(a==b){cout << 0 << endl; return ;}
    
    int ans=abs(a-b);
    if(ans>=x && b>=l && b<=r){cout << 1 << endl; return ;}
    
    if((a+x>r && a-x<l) || (b+x>r && b-x<l)){cout << -1 << endl; return ;}
    
    if((abs(a-l)>=x && abs(b-l)>=x) || (abs(a-r)>=x && abs(b-r)>=x)){cout << 2 << endl; return ;}
    cout << 3 << endl;

标签:CF1759C,边界,abs,&&,直接,步数,Thermostat
From: https://www.cnblogs.com/200312202218s/p/17385909.html

相关文章

  • Thermostat(思维)
    题目链接题目描述:Vladcamehomeandfoundoutthatsomeonehadreconfiguredtheoldthermostattothetemperatureof\(a\).Thethermostatcanonlybesetto......