Submission #1103480

# Submission time Handle Problem Language Result Execution time Memory
1103480 2024-10-21T04:02:05 Z ezzzay Nile (IOI24_nile) C++17
32 / 100
76 ms 14520 KB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define ll long long
const int N=3e5+5;
int par[N];
int sbtr[N];
int H;
void init(int n){
	H=2*n;
	for(int i=0;i<n;i++){
		par[i]=i;
		sbtr[i]=1;
	}
}
int find(int x){
	if(par[x]==x)return x;
	return par[x]=find(par[x]);
}
void unite(int x, int y){
	int px=find(x),py=find(y);
	if(px==py)return;
	if(sbtr[py]>sbtr[px])swap(px,py);
	int a=sbtr[px],b=sbtr[py];
	sbtr[px]+=sbtr[py];
	par[py]=px;
	if(a%2 and b%2 )H-=2;
}
std::vector<long long> calculate_costs(std::vector<int> W, std::vector<int> A,
                                       std::vector<int> B, std::vector<int> E) {                  
	init(int(W.size()));                 	
    int q = (int)E.size();
    int n = W.size();
    
    vector<ll>ans(q);
    vector<pair<ll,ll> >v;
    vector<pair<ll, pair<int,int> > >vc;
    for(int i=0;i<n;i++){
    	v.pb({W[i],i});
	}
	sort(v.begin(),v.end());
	for(int i=1;i<n;i++){
		int x=abs(v[i].ff-v[i-1].ff);
		int a=v[i-1].ss,b=v[i].ss;
		vc.pb({x,{a,b}});
	}
	sort(vc.begin(),vc.end());
	int idx=0;
	vector<pair<int,int>>vec;
	for(int i=0;i<q;i++){
		vec.pb({E[i],i});
	}
	sort(vec.begin(),vec.end());
	
	for(int f=0;f<q;f++){
		ll d=vec[f].ff;
		int k=vec[f].ss;
		while(vc[idx].ff<=d and idx<vc.size()){
			int a=vc[idx].ss.ff,b=vc[idx].ss.ss;
			unite(a,b);
			idx++;
		}
		ans[k]=H;
	}
	return ans;
}

Compilation message

nile.cpp: In function 'std::vector<long long int> calculate_costs(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
nile.cpp:60:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |   while(vc[idx].ff<=d and idx<vc.size()){
      |                           ~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2640 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 28 ms 10960 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 32 ms 10944 KB Output is correct
2 Correct 38 ms 10944 KB Output is correct
3 Correct 44 ms 12080 KB Output is correct
4 Correct 41 ms 11960 KB Output is correct
5 Correct 42 ms 10944 KB Output is correct
6 Correct 40 ms 12216 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2640 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2640 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 32 ms 10944 KB Output is correct
2 Correct 38 ms 10944 KB Output is correct
3 Correct 44 ms 12080 KB Output is correct
4 Correct 41 ms 11960 KB Output is correct
5 Correct 42 ms 10944 KB Output is correct
6 Correct 40 ms 12216 KB Output is correct
7 Correct 59 ms 12728 KB Output is correct
8 Correct 62 ms 12736 KB Output is correct
9 Correct 60 ms 12732 KB Output is correct
10 Correct 63 ms 14000 KB Output is correct
11 Correct 62 ms 14396 KB Output is correct
12 Correct 60 ms 12728 KB Output is correct
13 Correct 76 ms 12736 KB Output is correct
14 Correct 63 ms 14224 KB Output is correct
15 Correct 61 ms 14520 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2384 KB Output isn't correct
2 Halted 0 ms 0 KB -