제출 #423139

#제출 시각아이디문제언어결과실행 시간메모리
423139Antekb팀들 (IOI15_teams)C++14
34 / 100
4099 ms97928 KiB
#include "teams.h"
#include<bits/stdc++.h>
#define st first
#define nd second
#define pb(x) push_back(x);
using namespace std;
const int N=(1<<19);
int n;
vector<int> tab[N+N];
void init(int _N, int A[], int B[]) {
	n=_N;
	for(int i=0; i<n; i++){
		//cerr<<A[i]<<" "<<B[i]<<"\n";
		A[i]+=N;
		while(A[i]){
			tab[A[i]].pb(B[i]);
			A[i]/=2;
		}
	}
	for(int i=1; i<N+N; i++)sort(tab[i].begin(), tab[i].end());
}
int count(int l, int r, int y){
	int ans=0;
	//cerr<<l<<" "<<r<<" "<<y<<" ";
	for(l+=N, r+=N; l<r; l>>=1, r>>=1){
		if(l&1){
			ans+=tab[l].end()-lower_bound(tab[l].begin(), tab[l].end(), y);
			l++;
		}
		if(r&1){
			--r;
			ans+=tab[r].end()-lower_bound(tab[r].begin(), tab[r].end(), y);
		}
	}
	//cerr<<ans<<"\n";
	return ans;
}
int can(int M, int K[]) {
	//cerr<<"a\n";
	sort(K, K+M);
	int dp[M];
	for(int i=0; i<M; i++){
		dp[i]=K[i]-count(0, K[i]+1, K[i]);
		for(int j=0; j<i; j++){
			dp[i]=max(dp[i], dp[j]+K[i]-count(K[j]+1, K[i]+1, K[i]));
		}
		//cerr<<i<<" "<<dp[i]<<"\n";
		if(dp[i]>0)return 0;
	}
	return 1;
}

컴파일 시 표준 에러 (stderr) 메시지

teams.cpp: In function 'int count(int, int, int)':
teams.cpp:27:65: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion]
   27 |    ans+=tab[l].end()-lower_bound(tab[l].begin(), tab[l].end(), y);
      |                                                                 ^
teams.cpp:32:65: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion]
   32 |    ans+=tab[r].end()-lower_bound(tab[r].begin(), tab[r].end(), y);
      |                                                                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...