Submission #373154

#TimeUsernameProblemLanguageResultExecution timeMemory
373154luciocfRobots (IOI13_robots)C++14
14 / 100
238 ms19436 KiB
#include <bits/stdc++.h>
#include "robots.h"

#define ff first
#define ss second

using namespace std;

typedef pair<int, int> pii;

const int maxn = 1e6+10;

int n, m, t;
int x[maxn], y[maxn];

pii toy[maxn];

bool ok(int k)
{
	int ptr = n, qtd = 0;

	for (int i = t; i >= 1; i--)
	{
		if (qtd == k) ptr--, qtd = 0;
		if (ptr == 0 || x[ptr] < toy[i].ff) return 0;

		++qtd;
	}

	return 1;
}

int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[])
{
    n = A, m = B, t = T;

    for (int i = 0; i < n; i++)
    	x[i+1] = X[i]-1;

    for (int i = 0; i < m; i++)
    	y[i+1] = Y[i]-1;

    for (int i = 0; i < t; i++)
    	toy[i+1] = {W[i], S[i]};

    sort(x+1, x+n+1); sort(y+1, y+m+1); sort(toy+1, toy+t+1);

    int ini = 1, fim = t, ans = -1;

    while (ini <= fim)
    {
    	int mid = (ini+fim)>>1;

    	if (ok(mid)) ans = mid, fim = mid-1;
    	else ini = mid+1;
    }

    return ans;
}
#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...