CODECHEF WEEK-7 Assignment (Chirag)
CODECHEF WEEK-7 Assignment (Chirag)
CODE
#include <bits/stdc++.h>
using namespace std;
vector<int> NGE(vector<int> v)
{
vector<int> nge(v.size());
stack<int> st;
for (int i = 0; i < v.size(); i++)
{
while ((!st.empty()) && (v[i] > v[st.top()]))
{
nge[st.top()] = i;
st.pop();
}
st.push(i);
}
while (!st.empty())
{
nge[st.top()] = -1;
st.pop();
}
return nge;
}
int main()
{
int n, i;
cin >> n;
vector<int> vect;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
vect.push_back(x);
}
vector<int> nge = NGE(vect);
for (i = 0; i < n; i++)
cout << ((nge[i] == (-1)) ? -1 : vect[nge[i]]) << " ";
}
INPUT
5
2 1 6 4 5
//Constants
const int MOD = 1000000007; // 1e9 + 7
const int MAXN = 1000005; // 1e6 +5
const int INF = 100000000000005; // 1e15 +5
vi dist;
if (q.size() == 0)
return;
it = q.begin();
int next = it->second;
q.erase(it);
bfsutil(adj, next);
}
bfsutil(adj, start);
}
void solve(){
int n, m, k, u, v, q;
cin >> n >> m >> k;
cin >> q;
while(q--){
cin >> u;
cout << (dist[u] >= INF ? -1 : dist[u]) << endl;
}
return;
}
signed main(){
faster;
#ifndef ONLINE_JUDGE
freopen("ip.txt", "r", stdin);
freopen("op.txt", "w", stdout);
#endif
int t; cin >> t; while(t--)
solve();
return 0;
}
INPUT-
1
5 3 3
1 2
1 3
2 3
1 3 5