#include <iostream> #include <bits/stdc++.h> typedef long long ll; using namespace std; typedef pair<ll, ll> PII; typedef vector<ll> VI; typedef vector<string> VS; typedef vector<PII> VII; typedef vector<VI> VVI; typedef map<ll,ll> MPII; typedef set<ll> SETI; typedef multiset<ll> MSETI; #define MP make_pair #define PB push_back #define INF (int)1e9 ll mod=1000000007; // vector<int,int> fact(2 * 1e5 + 1); ll MOD = 998244353; ll power(ll a,ll b,ll mod){ if(b == 0){ return 1; } ll ans = power(a,b/2,mod); ans *= ans; ans %= mod; if(b % 2){ ans *= a; } return ans % mod; } ll ncr(ll n,ll r) { vector<vector<ll>>c(5001,vector<ll>(5001,0)); for(int i=1;i<=5000;i++) { c[i][0]=1; } c[1][1]=1; for(int i=1;i<=5000;i++) { for(int j=1;j<=i && j<=5000;j++) { if(i==1 && j==1)continue; else { c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod; } } } return c[n][r]; } //prime factor in log(N) using seive -->loglog(n); vector<ll> primefact(ll n) { vector<ll>arr(100001); for(int i=0;i<100001;i++)arr[i]=i; for(int i=2;i*i<100001;i++) { if(arr[i]==i) { for(int j=i*i;j<100001;j+=i) { if(arr[j]==j) { arr[j]=i; } } } } //seive will be ready in loglog(n); //now our seive is rready we now nedd too log(n) operatoin to find the all fromt factor vector<ll>ans; while(n>1) { ans.push_back(arr[n]); n=n/arr[n]; } return ans; } //all prime factor //all factor in sqrt(n) // { // vector<pair<ll,ll>>v; // for(ll i=2;i*i<=n;i++) // { // ll cnt=0; // while(n%i==0) // { // cnt++; // n=n/i; // } // if(cnt>0) // { // v.push_back({cnt,i}); // cnt=0; // } // } // if(n>0)v.push_back({1,n}); // } // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- void solve() { ll n; cin>>n; VI a(n+1); VI vis(n+1,0); for(int i=1;i<=n;i++) { cin>>a[i]; vis[a[i]]=i; } ll end=n; ll start=1; for(int i=n;i>0;i--) { start=vis[i]; if(start<end) { for(int j=start;j<=end;j++) { cout<<a[j]<<" "; } end=start; } } cout<<"\n"; } int main() { // your code goes here ios_base::sync_with_stdio(false); cin.tie(NULL); ll t; cin>>t; while(t--) { solve(); } // solve(); return 0; }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}