Submission #668343

#TimeUsernameProblemLanguageResultExecution timeMemory
668343Dremix10Robots (IOI13_robots)C++17
0 / 100
1513 ms29288 KiB
#include "robots.h"
#include<bits/stdc++.h>
using namespace std;
 
typedef long long ll;
#define pb push_back
#define F first
#define S second
#define enter cout<<'\n';
 
int putaway(int a, int b, int t, int x[], int y[], int W[], int Se[]) 
{
pair<ll,ll> w[t],s[t];
for(int i=0;i<t;i++)
{
	w[i].F=W[i];
	w[i].S=i;
 
	s[i].F=Se[i];
	s[i].S=i;
}
sort(x,x+a);
sort(y,y+b);
 
sort(w,w+t);
sort(s,s+t);
 
if((x[a-1]<=w[t-1].F && y[b-1]<=Se[w[t-1].S]) || (y[b-1]<=s[t-1].F && x[a-1]<=W[s[t-1].S]) ) 
return -1;
 
 
ll idx=0;
ll arr[a];
for(int i=0;i<a;i++)
{
	while(idx<t && w[idx].F<x[i])
	{
		idx++;
	}
	arr[i]=idx;
}
 
 
bool taken[t]={ };
ll ans=9999999999;
ll l=1,r=t+1;
 
priority_queue<pair<ll,ll>>pq;
 
while(l<r)
{
	ll left=t;
	ll minus=0;
	ll time=(l+r)/2;
	ll pre=0;
	for(int i=0;i<a;i++)
	{
		for(int j=pre;j<arr[i];j++)
			pq.push({Se[w[j].S],w[j].S});
			
	
		pre=arr[i];
		ll c=time;
		while(!pq.empty() && c--)
		{
			taken[pq.top().S]=true;
			pq.pop();
		}
		//left-=min(time,(arr[i]-minus));
		//minus+=min(time,(arr[i]-minus));
	}
	
	
		ll idx2=0;
		ll arr2[b];
        ll  cnt ;
			for(int i=0;i<b;i++)
			{
                cnt = time;
				while(idx2<t && s[idx2].F<y[i] && time>0)
				{
                    if(!taken[s[idx2].S]){
                        taken[s[idx2].S] = true;
                        time--;
                    }
                	idx2++;
				}
			}

        left = t;

        for(int i=0;i<t;i++){
            if(taken[i] == 1)left--;
        }
 
		if(left==0)
		{
		ans=min(ans,time);
		r=time;
		}
		else
		l=time+1;
	


	for(int i=0;i<t;i++)
	taken[i]=0;
}
return ans;
 
}

Compilation message (stderr)

robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:53:5: warning: unused variable 'minus' [-Wunused-variable]
   53 |  ll minus=0;
      |     ^~~~~
robots.cpp:75:6: warning: unused variable 'arr2' [-Wunused-variable]
   75 |   ll arr2[b];
      |      ^~~~
robots.cpp:76:13: warning: variable 'cnt' set but not used [-Wunused-but-set-variable]
   76 |         ll  cnt ;
      |             ^~~
#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...