Submission #93480

#TimeUsernameProblemLanguageResultExecution timeMemory
93480tincamateiTeams (IOI15_teams)C++14
0 / 100
4098 ms66584 KiB
#include <bits/stdc++.h> #include "teams.h" using namespace std; const int MAX_N = 500000; int n; int *a, *b; int poz[1+MAX_N]; vector<int> goright[1+MAX_N]; vector<int> goleft[1+MAX_N]; void init(int N, int A[], int B[]) { a = A; b = B; n = N; for(int i = 0; i < n; ++i) poz[i] = i; for(int i = 0; i < N; ++i) { goright[a[i]].push_back(i); goleft[b[i]].push_back(i); } } int can(int M, int K[]) { set<pair<int, int> > xd; int lastup = 0; for(int i = 1; i <= n; ++i) { for(int j = 0; j < goright[i].size(); ++j) { int it = goright[i][j]; xd.insert(make_pair(b[it], it)); } while(lastup < M && K[lastup] == i) { for(int j = 0; j < i; ++j) { if(xd.empty()) return false; xd.erase(xd.begin()); } ++lastup; } for(int j = 0; j < goleft[i].size(); ++j) { int it = goleft[i][j]; xd.erase(make_pair(i, it)); } } return true; }

Compilation message (stderr)

teams.cpp: In function 'int can(int, int*)':
teams.cpp:33:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j = 0; j < goright[i].size(); ++j) {
                    ~~^~~~~~~~~~~~~~~~~~~
teams.cpp:47:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j = 0; j < goleft[i].size(); ++j) {
                    ~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...