bluetuber's blog

By bluetuber, history, 12 months ago, In English

Wanted to know when it was initiated. When can i expect to have my ratings updated again....hours? days?

Full text and comments »

  • Vote: I like it
  • -26
  • Vote: I do not like it

By bluetuber, history, 13 months ago, In English

Here is the problem link. Although, I think pretty much understand the problem, I am getting wrong answer on the first test case even though I am allowed to output any possible sequence.

#include<bits/stdc++.h>
using namespace std;

void solve() {
    int n; cin >> n;
    vector<int> a(n);
    for(int i = 0 ; i < n ; i++) cin >> a[i];

    cout << 2*n-1 << endl;
    for(int i = 0 ; i < n ; i++){
        if(i == 0) cout << a[i] << " ";
        else cout << max(1, a[i]-1) << " " << a[i] << " ";
    }
    cout << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int t = 1; cin >> t;
    while (t--) solve();
}

The idea behind the solution is that since any a[i] in the original sequence 'a' can only be added if a[i-1] is less than equal to it I can greedily add a number less than or equal to b[i] before it in the final sequence 'b'. Help me understand faults in the logic/code.

Full text and comments »

  • Vote: I like it
  • +3
  • Vote: I do not like it