제출 #419742

#제출 시각아이디문제언어결과실행 시간메모리
419742Pbezz팀들 (IOI15_teams)C++14
0 / 100
179 ms14736 KiB
#include "teams.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back
typedef pair<ll,ll> pii;


const ll MAXN = 5e5+5;
const ll INF = 1e15+7;

int ended[MAXN];

int started[MAXN];
//started[i] = quantos A[j]<=i


void init(int N, int A[], int B[]) {
	ll i;
	for(i=0;i<N;i++){

	ended[B[i]+1]++;

	started[A[i]]++;
	}

	ended[0]=0; started[0]=0;
	for(i=1;i<=N+3;i++){
	ended[i]+=ended[i-1];
	started[i]+=started[i-1];
	}


}

int can(int M, int K[]) {
sort(K,K+M);
int i,j,cur,x;
int dp[M+1]; dp[0]=0;
for(i=1;i<=M;i++){
dp[i] = dp[i-1] + K[i-1];
}
//dp[i] e a soma dos primeiros i valores de k

for(i=0;i<M;i++){
for(j=i;j<M;j++){

cur = dp[j+1]-dp[i];

//ver se ha pelo menos cur pessoas neste intervalo
//somar os que começaram aqui com os que ja vieram

x = ( started[K[j]] - ended[K[i]] );

if(x<cur)return 0;

	}
}

return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...