답안 #149941

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
149941 2019-09-01T07:25:56 Z (παρα)γεμιστά(#3619, cfalas, ctziapo, Charis02) King of Chairs (FXCUP4_chairs) C++17
55 / 100
208 ms 28604 KB
#include "king.h"
#include<map>
#include<vector>
#include<algorithm>
#include<iostream>
#define ll long long
#define rep(i,a,b) for(int i = a;i < b;i++)
#define MAXN 300003

long long SendInfo(std::vector<int> W, std::vector<int> C) {
	int n = W.size();
    int cur = 0;

    sort(W.rbegin(),W.rend());
    sort(C.rbegin(),C.rend());

	rep(i,0,n)
	{
        if(W[i] <= C[cur])
        {
            cur++;
        }
	}

	return W[n-cur];
}
#include "vassal.h"
#include<map>
#include<vector>
#include<iostream>
#include<algorithm>
#include<set>
#define ll long long
#define pi pair < ll,ll >
#define mp(a,b) make_pair(a,b)
#define rep(i,a,b) for(int i = a;i < b;i++)
#define MAXN 1000003
#define INF 1e17

using namespace std;

long long maxi;
set < pi > available;
ll seg[4*MAXN];

void update(ll low,ll high,ll pos,ll slow)
{
    if(low == high && low == slow)
    {
        seg[pos]++;
        return;
    }
    if(low > slow || high < slow)
        return;

    ll mid = (low+high)/2;

    update(low,mid,pos*2+1,slow);
    update(mid+1,high,pos*2+2,slow);

    seg[pos] = seg[pos*2+1]+seg[pos*2+2];
    return;
}

ll query(ll low,ll high,ll pos,ll val)
{
    ll mid = (low+high)/2;

    if(low == high)
        return low;

    if(seg[pos*2+1] >= val)
        return query(low,mid,pos*2+1,val);
    else
        return query(mid+1,high,pos*2+2,val-seg[pos*2+1]);
}

void Init(long long B, std::vector<int> C)
{
	int n = C.size();
	sort(C.begin(),C.end());
    maxi = B;

	rep(i,0,n)
	{
        available.insert(mp(C[i],i));
        update(0,MAXN-1,0,C[i]);
	}

	return;
}

int Maid(int W){
    if(W>maxi)
        return -1;
    else
    {
        set < pi >::iterator it = available.lower_bound(mp(W,0));
        available.erase(it);
        return (*it).second;
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 1176 KB Correct
2 Correct 10 ms 1304 KB Correct
3 Correct 11 ms 1432 KB Correct
4 Correct 10 ms 1424 KB Correct
5 Correct 12 ms 1428 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 91 ms 22632 KB Correct
2 Correct 145 ms 27536 KB Correct
3 Correct 159 ms 28232 KB Correct
4 Correct 160 ms 28488 KB Correct
5 Correct 164 ms 28484 KB Correct
6 Correct 154 ms 27972 KB Correct
7 Correct 163 ms 28348 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 109 ms 23148 KB B = 993847
2 Partially correct 191 ms 27524 KB B = 996200
3 Partially correct 177 ms 28352 KB B = 706116
4 Runtime error 208 ms 28604 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Halted 0 ms 0 KB -