Submission #850149

#TimeUsernameProblemLanguageResultExecution timeMemory
850149leanchecStone Arranging 2 (JOI23_ho_t1)C++17
100 / 100
240 ms25816 KiB
#include<bits/stdc++.h> using namespace std; int main(){ int n, ind=1, maior[300100]={}; cin >> n; map<int,int> compress; map<int,int> descompress; vector<int> v(n); vector<pair<pair<int,int>, int>> resp; for(int i=0; i<n; i++){ cin >> v[i]; maior[i]=-1; } maior[n]=-1; vector<int> aux=v; sort(aux.begin(), aux.end()); compress[aux[0]]=ind; descompress[ind]=aux[0]; ind++; for(int i=1; i<n; i++){ if(aux[i]>aux[i-1]){ compress[aux[i]]=ind; descompress[ind]=aux[i]; ind++; } } for(int i=0; i<n; i++){ int cur=compress[v[i]]; if(maior[cur]!=-1)resp.push_back({{maior[cur], i}, descompress[cur]}); maior[cur]=i; } sort(resp.begin(), resp.end()); int ptr=0, ptr2=0, ultimo; while(ptr<n){ while(ptr2<(int)resp.size() && ptr>resp[ptr2].first.first && ultimo!=resp[ptr2].second){ ptr2++; } if(ptr2==(int)resp.size())break; if(ptr<resp[ptr2].first.first){ cout << v[ptr] << '\n'; ptr++; continue; } while(ptr<=resp[ptr2].first.second){ cout << resp[ptr2].second << '\n'; ptr++; } ultimo=resp[ptr2].second; ptr2++; } while(ptr<n){ cout << v[ptr] << '\n'; ptr++; } return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:46:67: warning: 'ultimo' may be used uninitialized in this function [-Wmaybe-uninitialized]
   46 |         while(ptr2<(int)resp.size() && ptr>resp[ptr2].first.first && ultimo!=resp[ptr2].second){
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...