ABC321

发布时间 2023-09-23 23:05:10作者: V_Melville

T1:321-like Checker

模拟

代码实现
#include <bits/stdc++.h>

using namespace std;

int main() {
    string s;
    cin >> s;
    
    for (int i = 0; i+1 < s.size(); ++i) {
        if (s[i] <= s[i+1]) {
            puts("No");
            return 0;
        } 
    }
    
    puts("Yes");
    
    return 0;
}

T2:Cutoff

暴力枚举 \(A_N\) 即可

代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)

using namespace std;

int main() {
    int n, x;
    cin >> n >> x;
    
    vector<int> a(n);
    rep(i, n-1) cin >> a[i];
    
    while (a.back() <= 100) {
        auto b = a;
        sort(b.begin(), b.end());
        int s = 0;
        for (int i = 1; i < n-1; ++i) s += b[i];
        if (s >= x) {
            cout << a.back() << '\n';
            return 0;
        }
        a.back()++;
    }
    
    puts("-1");
    
    return 0;
}

T3:321-like Searcher

暴搜出所有的 321-like Number

代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)

using namespace std;
using ll = long long;

int main() {
    int k;
    cin >> k;
    
    vector<ll> a;
    rep(s, 1<<10) {
        ll x = 0;
        for (int i = 9; i >= 0; --i) {
            if (s>>i&1) {
                x = x*10+i;
            }
        }
        if (x == 0) continue;
        a.push_back(x);
    }
    
    sort(a.begin(), a.end());
    
    cout << a[k-1] << '\n';
    
    return 0;
}