Submission #727694

#TimeUsernameProblemLanguageResultExecution timeMemory
727694Vu_CG_CoderTeams (IOI15_teams)C++14
0 / 100
4054 ms23560 KiB
/* [Author : Hoang Duy Vu] - THPT Chuyen Nguyen Du    */
//#pragma GCC optimize(" unroll-loops")
//#pragma gcc optimize("Ofast")
//#pragma GCC optimization("Ofast")
//#pragma optimize(Ofast)
#include "teams.h"
#include <bits/stdc++.h>
#define All(x) (x).begin(),(x).end()
#define ll long long
#define C make_pair
#define fi first
#define se second
#define two second.first
#define thr second.second
#define TASK "txt"
using namespace std;
template<typename T> bool maximize(T &res, const T &val) {
    if (res < val) { res = val; return true; } return false; }
template<typename T> bool minimize(T &res, const T &val) {
    if (res > val) { res = val; return true; } return false; }

typedef pair<int,int> ii;
typedef pair<int,ii> iii;
const int LOG = 20;
const int INF = 1e9 + 7;
const ll LNF = 1e18 + 7;
const int mod = 1e9 + 7;
const int Nx = 1e5 + 100;

multiset <int> s;
ii a[Nx];
vector <int> in[Nx] , out[Nx];
int n;
int m;
void init(int N, int A[], int B[]) {

    n = N;
    for (int i = 0 ; i < n ; i++)
    {
        in[B[i]].push_back(A[i]);
        out[A[i] - 1].push_back(A[i]);
    }
}

int can(int M, int K[]) {
    int m = M;

    sort(K,K+m);
    s.clear();

    int r = m - 1;
    for (int i = n ; i >= 0 ; i--)
    {
        for (int v : in[i]) s.insert(v);
        for (int v : out[i]) s.erase(s.find(v));

        while (r >= 0 && K[r] == i)
        {
            if (s.size() < i) return 0;
            for (int j = 1 ; j <= i ; j++) 
            {
                auto x = s.end();
                x--;
                s.erase(s.find(*x));
            }
            r--;
        }
        
    }

	return 1;
}

// int main()
// {
//     ios_base::sync_with_stdio(0);
//     cin.tie(NULL); cout.tie(NULL);
//     if(fopen(TASK".inp", "r")){
//     freopen(TASK".inp","r",stdin);
//     freopen(TASK".out","w",stdout);
//     }

//     return 0;
// }

Compilation message (stderr)

teams.cpp: In function 'int can(int, int*)':
teams.cpp:46:9: warning: declaration of 'm' shadows a global declaration [-Wshadow]
   46 |     int m = M;
      |         ^
teams.cpp:34:5: note: shadowed declaration is here
   34 | int m;
      |     ^
teams.cpp:59:26: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   59 |             if (s.size() < i) 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...