Submission #953792

# Submission time Handle Problem Language Result Execution time Memory
953792 2024-03-26T16:23:47 Z amirhoseinfar1385 Passport (JOI23_passport) C++17
40 / 100
2000 ms 18148 KB
#include<bits/stdc++.h>
using namespace std;
const int maxn=200000+10;
int n,q,vasps[maxn],vassuf[maxn],tedps[maxn],tedsuf[maxn],fasps[maxn],fassuf[maxn],vis[maxn];
pair<int,int>all[maxn];
vector<int>fps,fsuf;
pair<int,int>dp[maxn];
struct cmp {
    bool operator() (pair<int,int> a,pair<int,int> b) const {
  		if(a.first!=b.first){
  			return a.first<b.first;
  		}      
  		if(all[a.second].second!=all[b.second].second){
  			return all[a.second].second>all[b.second].second;
  		}
  		return a<b;
    }
};
set<pair<int,int>,cmp>stdij;
 
void upddij(pair<int,int>x){
	for(int i=1;i<=n;i++){
		if(vis[i]==1){
			continue;
		}
		if(all[i].first<=x.second&&all[i].second>=x.second){
			all[i].second=max(all[i].second,dp[x.second].second);
			stdij.insert(make_pair(x.first+1,i));
			vis[i]=1;
		}
	}
}
 
void dij(){
	for(int i=1;i<=n;i++){
		if(all[i].first==1){
			stdij.insert(make_pair(1,i));
			vis[i]=1;
		}
	}
	while((int)stdij.size()>0){
		auto x=*stdij.begin();
		stdij.erase(x);
		dp[x.second]=make_pair(x.first,all[x.second].second);
		upddij(x);
	}
}
 
void vorod(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>all[i].first>>all[i].second;
	}
}
 
void pre(){
	set<pair<int,int>>st;
	int now=0;
	while(true){
		int nx=now;
		if((int)st.size()>0){
			nx=max(nx,(*st.rbegin()).first);
		}
		if(nx==now){
			vasps[now]=1;
			st.insert(make_pair(all[now+1].second,now+1));
		}else{
			fps.push_back((*st.rbegin()).second);
			st.clear();
			for(int i=now+1;i<=nx;i++){
				st.insert(make_pair(all[i].second,i));
			}
			now=nx;
		}
		if(now==n){
			break;
		}
	}
	st.clear();
	now=n+1;
	while(true){
		int nx=now;
		if((int)st.size()>0){
			nx=min(nx,(*st.begin()).first);
		}
		if(nx==now){
			vassuf[now]=1;
			st.insert(make_pair(all[now-1].first,now-1));
		}else{
			fsuf.push_back((*st.rbegin()).second);
			st.clear();
			for(int i=now-1;i>=nx;i--){
				st.insert(make_pair(all[i].first,i));
			}
			now=nx;
		}
		if(now==1){
			break;
		}
	}
	for(int i=1;i<=n;i++){
		vassuf[i]|=vassuf[i-1];
	}
	for(int i=n;i>=1;i--){
		vasps[i]|=vasps[i+1];
	}
	for(auto x:fps){
		tedps[x]++;
	}
	for(auto x:fsuf){
		tedsuf[x]++;
	}
	for(int i=1;i<=n;i++){
		tedsuf[i]+=tedsuf[i-1];
	}
	for(int i=n;i>=1;i--){
		tedps[i]+=tedps[i+1];
	}
	dij();
}
 
void khor(){
int q;
	cin>>q;
	for(int i=0;i<q;i++){
		int x;
		cin>>x;
		if(vis[x]==1&&vasps[all[x].second]==0){
			cout<<dp[x].first+tedps[dp[x].second+1]+(dp[x].second!=n)<<"\n";	
		}else{
			cout<<-1<<"\n";
		}
	}
}
 
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
//	freopen("inp.txt","r",stdin);
	vorod();
	pre();
	khor();
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 2 ms 8616 KB Output is correct
3 Correct 1 ms 8540 KB Output is correct
4 Execution timed out 2096 ms 18148 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 8540 KB Output is correct
3 Correct 2 ms 8540 KB Output is correct
4 Correct 1 ms 8540 KB Output is correct
5 Correct 1 ms 8540 KB Output is correct
6 Correct 2 ms 8540 KB Output is correct
7 Correct 1 ms 8536 KB Output is correct
8 Correct 1 ms 8540 KB Output is correct
9 Correct 1 ms 8536 KB Output is correct
10 Correct 1 ms 8540 KB Output is correct
11 Correct 2 ms 8540 KB Output is correct
12 Correct 1 ms 8540 KB Output is correct
13 Correct 1 ms 8536 KB Output is correct
14 Correct 1 ms 8540 KB Output is correct
15 Correct 1 ms 8536 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 8540 KB Output is correct
3 Correct 2 ms 8540 KB Output is correct
4 Correct 1 ms 8540 KB Output is correct
5 Correct 1 ms 8540 KB Output is correct
6 Correct 2 ms 8540 KB Output is correct
7 Correct 1 ms 8536 KB Output is correct
8 Correct 1 ms 8540 KB Output is correct
9 Correct 1 ms 8536 KB Output is correct
10 Correct 1 ms 8540 KB Output is correct
11 Correct 2 ms 8540 KB Output is correct
12 Correct 1 ms 8540 KB Output is correct
13 Correct 1 ms 8536 KB Output is correct
14 Correct 1 ms 8540 KB Output is correct
15 Correct 1 ms 8536 KB Output is correct
16 Correct 8 ms 8796 KB Output is correct
17 Correct 7 ms 8540 KB Output is correct
18 Correct 7 ms 8796 KB Output is correct
19 Correct 7 ms 8792 KB Output is correct
20 Correct 6 ms 8536 KB Output is correct
21 Correct 6 ms 8540 KB Output is correct
22 Correct 4 ms 8796 KB Output is correct
23 Correct 6 ms 8748 KB Output is correct
24 Correct 5 ms 8540 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 8540 KB Output is correct
3 Correct 2 ms 8540 KB Output is correct
4 Correct 1 ms 8540 KB Output is correct
5 Correct 1 ms 8540 KB Output is correct
6 Correct 2 ms 8540 KB Output is correct
7 Correct 1 ms 8536 KB Output is correct
8 Correct 1 ms 8540 KB Output is correct
9 Correct 1 ms 8536 KB Output is correct
10 Correct 1 ms 8540 KB Output is correct
11 Correct 2 ms 8540 KB Output is correct
12 Correct 1 ms 8540 KB Output is correct
13 Correct 1 ms 8536 KB Output is correct
14 Correct 1 ms 8540 KB Output is correct
15 Correct 1 ms 8536 KB Output is correct
16 Correct 8 ms 8796 KB Output is correct
17 Correct 7 ms 8540 KB Output is correct
18 Correct 7 ms 8796 KB Output is correct
19 Correct 7 ms 8792 KB Output is correct
20 Correct 6 ms 8536 KB Output is correct
21 Correct 6 ms 8540 KB Output is correct
22 Correct 4 ms 8796 KB Output is correct
23 Correct 6 ms 8748 KB Output is correct
24 Correct 5 ms 8540 KB Output is correct
25 Correct 2 ms 8536 KB Output is correct
26 Correct 1 ms 8540 KB Output is correct
27 Incorrect 9 ms 8736 KB Output isn't correct
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 2 ms 8616 KB Output is correct
3 Correct 1 ms 8540 KB Output is correct
4 Execution timed out 2096 ms 18148 KB Time limit exceeded
5 Halted 0 ms 0 KB -