关于AT的B
  • 板块灌水区
  • 楼主aldol_reaction
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/2/13 22:14
  • 上次更新2023/11/5 03:18:33
查看原帖
关于AT的B
393190
aldol_reaction楼主2021/2/13 22:14

有没有什么好的思路分类讨论啊,我看AC的代码都很清奇。我自己打了一张a4正反面的样例,AC19个点,WA3个点,自己的代码打了很多补丁,比较丑陋,dalao勿喷

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<stack>
#include<set>
#define NDEBUG
#include <assert.h>
#include <time.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;

#define debug(x)std::cout << "Line" << __LINE__ << "    " << #x << "=" << x << std::endl
#define endl '\n'
#define rd read()
#define pb push_back
#define mst(a, b) memset((a), (b), sizeof(a));
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
#define mod ((int)1e9+7)
#define maxn (int)(1e5+5)

ll b, c, ans;

int main() {
    cin >> b >> c;
    if(b >= c || -b >= c) ans = 2 * c - 1;
    else if(b < c) {
        if(b == 0) ans = c;
        else if(b > 0) ans = c + 2 * b - 1;
        else if(b < 0) ans = c + 2 * (-b);
    }
    if((b == 1 || b == -1) && c == 1) ans = 2;
    if((b == 1 || b == -1) && c == 2) ans = 3;
    if((b == 1 || b == -1) && c == 3) ans = 4;
    if(b != 0 && c == 1) ans = 2;
    cout << ans << endl;
    return 0;
}
2021/2/13 22:14
加载中...