Submission #239330

#TimeUsernameProblemLanguageResultExecution timeMemory
239330kshitij_sodaniGondola (IOI14_gondola)C++17
25 / 100
47 ms5880 KiB
#include <bits/stdc++.h>
using namespace std;
typedef int64_t llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second
#include "gondola.h"
int valid(int n,int aa[]){
	vector<int> ind;
	set<int> ss;
	for(int i=0;i<n;i++){
		ss.insert(aa[i]);
	}
	if(ss.size()!=n){
		return 0;
	}
	for(int i=0;i<n;i++){
		if(aa[i]<=n){
			ind.pb(i);
		}
	}
	if(ind.size()<2){
		return 1;
	}
	int st=0;
	int bb[n];
	int co=aa[ind[0]];
	for(int i=ind[0];i<n;i++){
		bb[i]=co;
		co+=1;
		if(co==n+1){
			co=1;
		}
	}
	for(int i=0;i<ind[0];i++){
		bb[i]=co;
		co+=1;
		if(co==n+1){
			co=1;
		}
	}
	for(int i=0;i<n;i++){
		if(bb[i]!=aa[i] and aa[i]<=n){
			return 0;
		}
	}
	return 1;
}
int replacement(int n,int aa[],int bb[]){
	int vis[250001];
	int ma=0;
	for(int i=0;i<n;i++){
		vis[aa[i]]=1;
		ma=max(ma,aa[i]);
	}
	vector<int> ind;

	for(int i=0;i<n;i++){
		if(aa[i]<=n){
			ind.pb(i);
		}
	}
	if(ind.size()==0){
		int co=0;
		for(int i=1;i<=ma;i++){
			if(vis[i]==0){
				bb[co]=i;
				co++;
			}
		}
		return co;
	}
	int cc[n];
	int co=aa[ind[0]];
	for(int i=ind[0];i<n;i++){
		cc[i]=co;
		co+=1;
		if(co==n+1){
			co=1;
		}
	}
	for(int i=0;i<ind[0];i++){
		cc[i]=co;
		co+=1;
		if(co==n+1){
			co=1;
		}
	}
	vector<pair<int,int>> dd;
	for(int i=0;i<n;i++){
		if(aa[i]>n){
			dd.pb({aa[i],i});
		}
	}
	if(dd.size()==0){
		return 0;
	}
	sort(dd.begin(),dd.end());
	int cur=n+1;
	int ans=0;
/*	for(int i=0;i<n;i++){
		cout<<cc[i]<<',';
	}
	cout<<endl;*/
	for(auto i:dd){
		bb[ans]=cc[i.b];
		ans++;
		for(int j=cur;j<i.a;j++){
			bb[ans]=j;
			ans++;
		}
		cur=i.a+1;
	}
/*	for(int i=0;i<ans;i++){
		cout<<bb[i]<<",";
	}
	cout<<endl;
*/
	return ans;

}
int countReplacement(int n,int aa[]){

}
/*int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin>>n;
	int it[n];
	for(int i=0;i<n;i++){
		cin>>it[i];
	}
	int ac[25000];
	cout<<replacement(n,it,ac)<<endl;



	return 0;
}*/

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:15:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if(ss.size()!=n){
     ~~~~~~~~~^~~
gondola.cpp:26:6: warning: unused variable 'st' [-Wunused-variable]
  int st=0;
      ^~
gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:125:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...