Submission #262141

#TimeUsernameProblemLanguageResultExecution timeMemory
262141amiratou팀들 (IOI15_teams)C++14
21 / 100
4108 ms341816 KiB
#include "teams.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll long long

int n,a[100005],b[100005];
vector<int> vec[100005];
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void init(int N, int A[], int B[]) {
	n=N;
	for (int i = 0; i < n; ++i)
	{
		a[i]=A[i];
		b[i]=B[i];
	}
	for (int i = 1; i <= n; ++i)
		for (int j = 0; j < n; ++j)
			if(a[j]<=i && i<=b[j])vec[i].pb(j);	
}

int can(int M, int K[]) {
	sort(K,K+M);
	for (int i = 0; i < M; ++i)
	{
		set<int> myset;
		ll sum=0;
		for (int j = i; j < M; ++j)
		{
			sum+=K[j];
			for(auto it:vec[K[j]])
				myset.insert(it);
			if(myset.size()<sum)return 0;
		}
	}
	for (int i = 0; i < M*(M/2); ++i)
	{
		set<int> myset;
		ll sum=0;
		for (int j = 0; j < M; ++j)
		{
			if(rng()&1)continue;
			sum+=K[j];
			for(auto it:vec[K[j]])
				myset.insert(it);
			if(myset.size()<sum)return 0;
		}
	}
	return 1;
}

Compilation message (stderr)

teams.cpp: In function 'int can(int, int*)':
teams.cpp:33:19: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   33 |    if(myset.size()<sum)return 0;
      |       ~~~~~~~~~~~~^~~~
teams.cpp:46:19: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   46 |    if(myset.size()<sum)return 0;
      |       ~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...