Submission #774687

#TimeUsernameProblemLanguageResultExecution timeMemory
774687vjudge1Stone Arranging 2 (JOI23_ho_t1)C++14
60 / 100
2074 ms14028 KiB
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//#define int long long
#define f first
#define s second
#define pii pair<int,int>
#define piii pair<int,pair<int,int>>
#define vii vector<vector<int>>
#define vi vector<int>
#define cd complex<double>
#define endl '\n'
//#define multipletest
using namespace std;
const int LIM=2e5;
const string name="template";
int n,m,q;
int a[LIM+5];
map<int,int> mp;
int t[LIM+5];
int cnt[LIM+5];
void solve(){
	//CODE GOES HERE
    cin>>n;
    for(int i=1;i<=n;++i){
    	cin>>a[i];
	}
	int id=1;
	for(int i=1;i<=n;++i){
		if(mp.count(a[i])==0){
			mp[a[i]]=++id;
		}
	}
	for(int i=1;i<=n;++i){
		t[i]=mp[a[i]];
	}
	for(int i=1;i<=n;++i){
		int x=t[i];
		if(cnt[x]==0){
			cnt[x]=i;
		}
		else{
			for(int j=cnt[x];j<=i;++j){
				if(a[j]!=a[i]){
					int y=t[j];
					cnt[y]=0;
				}
			    a[j]=a[i];
			}
		   cnt[x]=i;
		}
	}
	for(int i=1;i<=n;++i){
		cout<<a[i]<<endl;
	}
}
signed main(){
  // freopen((name+".inp").c_str(),"r",stdin);
  // freopen((name+".out").c_str(),"w",stdout);
  //  ifstream cin(".txt");
  //  ofstream cout(".txt");
    //ifstream cin((name +".inp"));
    //ofstream cout((name +".ans"));
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
	int test;
	test=1;
	#ifdef multipletest
	cin>>test;
	#endif
	while(test--){
        solve();
        #ifdef DEBUG
		cerr << "Runtime is: " << clock() * 1.0 / CLOCKS_PER_SEC << endl;
	    #endif
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...