Submission #1257265

#TimeUsernameProblemLanguageResultExecution timeMemory
1257265yhx3Obstacles for a Llama (IOI25_obstacles)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ord_set tree < int ,  null_type ,  less ,  rb_tree_tag ,  tree_order_statistics_node_update>
#define ll unsigned long long
#define rep(i,a,b) for (int i = a; i < b; i++)
#define rrep(i,a,b) for (int i = a; i >= b; i--)
void N() {cout<<"NO\n";}
void Y() {cout<<"YES\n";}
void isTrue(bool ope) {
    if (ope) Y();else N();
}
int MD = 1e9+7;
ll MX_VL = 1e18;
int MX_ll = 2e9;


vector<int> T;
vector<int> H;
vector<int> pref;
vector<int> pref2;
vector<int> pnt;
vector<int> cnc2;
int m;
int n;

void initialize(std::vector<int> Tp, std::vector<int> Hp) {
    T = Tp;
    H = Hp;
    m = Hp.size();
    n = Tp.size();
    pref.resize(m, 0);
    pref2.resize(m, 0);
    pref2[0] = H[0] >= 2;
    pref[0] = Tp.back() <= Hp[0];
    rep(i, 0, m) {
        if (H[i] == 0) pnt.push_back(i);
        if (H[i] >= 2) {
            cnc2.push_back(i);
            pref2[i] = pref2[i - 1] + 1;
        } else pref2[i] = pref2[i - 1];
    }
    rep(i, 1, m) {
        pref[i] = (Tp.back() <= Hp[i]) + pref[i - 1];
    }
}

bool can_reach(int L, int R, int S, int D) {
    auto tt = lower_bound(cnc2.begin(),cnc2.end(),S);
    if (tt == cnc2.end() || *tt > D) return true;
    if (pnt.empty()) return false;
    auto i1 = lower_bound(cnc2.begin(),cnc2.end(),D);
    int l = *prev(i1,1);
    int r = i1 != cnc2.end() ? *i1 : m;
    int l2 = tt == cnc2.begin() ? -1 : *prev(tt,1);
    int r2 = *tt;
    auto j = *lower_bound(pnt.begin(),pnt.end(),l2);
    auto i = *lower_bound(pnt.begin(),pnt.end(),l);
    return j <= r2 && i <= r && pref[i]==pref[j];
}


void solve() {
    int n;
    cin>>n;
    string a,b;
    cin>>a>>b;
    vector<int> c1(n);
    vector<int> c2(n);
    int c1o = b[0]!=a[0];
    int c2o = b[0]!=a[0];
    c1[0] = c1o;
    ll sm1 = 0;
    rep(i,1,n) {
        c1o += b[i]!=a[0];
        c1[i] = min(i+2-c1o,c1o);
        sm1 += c1[i];
    }
    rep(i,1,n) {
        c2o += a[i]!=b[0];
        c2[i] = min(i+2-c2o,c2o);
    }
    ll ans = sm1+c2[0];
    rep(i,1,n) {
        if (c2[i]!=c2[i-1]) sm1+=n-1;
        ans+=sm1;
    }
    cout << ans << endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    cin >> t;
    while (t--) {
        solve();
    }
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccvVo0yE.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cctARW12.o:obstacles.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status